Java专题4案例2.-异常.ppt

上传人:bao****ty 文档编号:144950135 上传时间:2020-09-14 格式:PPT 页数:32 大小:413KB
返回 下载 相关 举报
Java专题4案例2.-异常.ppt_第1页
第1页 / 共32页
Java专题4案例2.-异常.ppt_第2页
第2页 / 共32页
Java专题4案例2.-异常.ppt_第3页
第3页 / 共32页
Java专题4案例2.-异常.ppt_第4页
第4页 / 共32页
Java专题4案例2.-异常.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《Java专题4案例2.-异常.ppt》由会员分享,可在线阅读,更多相关《Java专题4案例2.-异常.ppt(32页珍藏版)》请在金锄头文库上搜索。

1、猜字游戏,教学目标,了解编程中遇到的错误 理解Java异常及Java异常处理机制 掌握自定义异常的使用 掌握throw与throws的区别 能熟练使用try-catch-finlly进行异常处理 通过实现加法计算器功能掌握Java的异常处理,演示程序,演示程序,相关实践1,打开netBeans5.5,新建guessNumber应用程序, 在项目中加入包com.handson.guessNumber,相关实践2,新建类NumberException类 ,用来生成自定义异常 package com.handson.guessNumber; public class NumberException

2、extends Exception public NumberException() super(输入的不是一个100以内的正整数!); ,相关实践3,在com.handson.guessNumber包中新建类Tools public class Tools public static boolean chick(String temp)throws NumberException int number= Integer.parseInt(temp); if(number=100) throw new NumberException(); if(number =65) return true;

3、 else return false; ,相关实践4,新建类Main,用来测试 public class Main public static void main(String args) boolean b=false; System.out.println(一个数字游戏); System.out.println(请看下面的数字,判断最后一个数字是什么?); System.out.println(5,9,17,33,?); System.out.println(答案要是一个正整数!); System.out.println(请输入答案);,相关实践5,继续main函数中的代码 try Buf

4、feredReader reader = new BufferedReader(new InputStreamReader(System.in); String answer = reader.readLine(); b=Tools.chick(answer); catch (IOException ex) System.out.println(没有输入!); ex.printStackTrace(); catch(java.lang.NumberFormatException ex) System.out.println(输入的不是数字); System.out.println(ex.get

5、Message(); ex.printStackTrace(); catch(NumberException ex) System.out.println(ex.getMessage(); ,1,2,3,相关实践6,继续main函数中的代码 finally if(b) System.out.println(回答的非常正确!); else System.out.println(回答不正确!); ,相关实践7,运行输入非数字,相关实践8,运行输入不在0-100之间的数字,相关实践9,输入正确答案的结果,总结,异常是运行时发生的错误 可以使用 try、catch、throw、throws 和 fin

6、ally 来管理 Java 异常处理。要监控的程序语句包含在 try 块内catch 块中的代码用于捕获和处理异常。在方法返回之前绝对必须执行的代码应放置在 finally 块中 要手动引发异常,使用关键字 throw。任何被抛到方法外部的异常都必须用 throws 子句指定 自定义异常的编写和使用,编程中的错误,编译错误 编译错误是由于所编写的程序存在语法问题,未能通过由源代码到目标码(Java语言中由源代码到字节码)的编译过程而产生的,它由语言的编译系统负责检测和报告; 系统运行错误 系统运行错误是指程序在执行过程中发生的错误,它会中断程序的正常执行; 逻辑运行错误 没有了编译错误和系统运

7、行错误,还有可能有逻辑运行错误,逻辑运行错误是指程序不能实现编程人员的设计意图和设计功能而产生的错误,例如排序时不能正确排序。,异常,异常(Exception)=非正常 异常不同于错误 举例:到C盘找不存在的文件 异常是需要处理的,Java语言特定的运行错误处理机制 异常对象 异常抛出 异常抛出,异常类处理机制,异常类,异常类包括: java定义的异常类 自定义异常类 Java中定义了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。每当Java程序运行过程中发生一个可识别的运行错误时,系统都会产生一个相应的该异常类的对象,即产生一个异常,系统定义的

8、运行异常,用户自定义异常,内置异常不可能始终足以捕获所有错误,因此需要用户自定义的异常类 用户自定义异常主要用来处理用户程序中特定的逻辑运行错误 用户自定义的异常类应为 Exception 类(或者Exception 类的子类)的子类 例如: public class NumberException extends Exception public NumberException() super(输入的不是一个100以内的正整数!); ,异常的抛出1,异常抛出 系统自动抛出(系统定义异常类的对象) 手工抛出(自定义异常对象或系统异常对象) 手式抛出异常时用throw语句 使用throw语句就可

9、以明确地抛出一个异常 throw语句格式为: ,异常的抛出2,throws语句 如果一个方法可能导致一个异常但不处理它,此时要求在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,由调用者处理。 一个throws子句列举了一个方法可能引发的所有异常类型。 例如 public static boolean chick(String temp)throws NumberException,异常的抛出3,throw与throws的区别 throws出现在方法头,而throw出现在方法体中。 throws表示出现异常的一种可能性,并不一定会发生这些异常,执行throw则一定抛出了某种

10、异常。 两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由方法去处理异常,真正的处理异常由方法的上层调用处理。,捕获异常1,Java语言中异常的捕获是通过try-catch-finally语句来实现的。,try /有可能抛弃异常的代码 catch(Exceptionname1 e) /异常处理代码 catch(Exceptionname2 e) /异常处理代码 finally /此部分代码总被执行 ,Try-catch-finally执行流程,try 块,finally 块,catch 块,无异常,异常,try、catch 和 finally 块

11、的执行流程,try块,try try块中的语句体是程序中有可能产生一个或多个异常的语句,该段语句是程序正常情况下应该要完成的功能 。,Catch块1,Catch块 每个try代码块可以伴随一个或多个catch块,用于捕获并处理try代码块中所生成的异常。catch语句只需要一个形式参数指明它能捕获的异常类型,这个类型必须是Throwable的子类,运行时系统通过参数值把被抛出的异常对象传递给catch块。,Catch块2,每个catch块都有一个异常类对象作为参数 一个异常对象能否被一个catch语句块所接收,主要看该异常对象与catch块的异常参数的匹配情况:当它们满足下面三个条件的任何一个

12、时,异常对象将被接收。 异常对象与参数属于相同的异常类 异常对象属于参数异常类的子类 异常对象实现了参数所定义的接口,Catch块3,catch语句的顺序 先捕获子类异常,再捕获父类异常 例如: int x=0; try int y=10/x; catch(ArithmeticException e) System.out.println(devide by zero); catch(Exception e) System.out.println(There is an exception); ,Catch块4,异常只能被捕捉一次 如果异常没有被捕捉,程序流程将返回到调用该方法的上层方法,Fi

13、nally块,finally 确保了在出现异常时所有清除工作都将得到处理 与 try 块一起使用 无论是否出现异常,finally块都将运行,异常类常用方法1,public String getMessage(); getMessage()方法返回描述当前异常类的消息字符串。 public String toString(); toString()方法返回描述当前异常类的消息的字符串,一般由三部分组成:此对象实际类的名称、冒号和空格、此对象getMessage()方法的结果。,异常类常用方法2,public void printStackTrace(); printStackTrace()方法没有返回值,它的功能是完成一个打印操作,在当前的标准输出上打印输出当前异常对象的堆栈使用轨迹,也即程序先后调用执行了哪些对象或类的哪些方法,使得运行过程中产生了这个异常对象。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号