JAVA程序员培训定制课程c08.ppt
《JAVA程序员培训定制课程c08.ppt》由会员分享,可在线阅读,更多相关《JAVA程序员培训定制课程c08.ppt(31页珍藏版)》请在三一文库上搜索。
1、第八章,Java异常和断言,2,本课内容,Java异常的概念和处理机制 Java异常的分类 异常的捕获、处理和抛出 使用用户自定义异常 断言,3,Java异常,Java程序运行过程中所发生的异常事件可分为两类: 错误(Error):JVM系统内部错误、资源耗尽等严重情况 违例(Exception): 其它因编程错误或偶然的外在因素导致的一般性问题,例如: 对负数开平方根 空指针访问 试图读取不存在的文件 网络连接中断,4,Java异常举例(1),public class Test12_1 public static void main(String args) String friends=“
2、lisa“,“bily“,“kessy“; for(int i=0;i5;i+) System.out.println(friendsi); System.out.println(“nthis is the end“); ,5,Java异常举例(2),程序Test12_1运行结果:java Test12_1 lisa bily kessy Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException at Test12_1.main(Test12_1.java:5) Press any key to continue.,
3、6,Java异常类层次,7,常见异常,RuntimeException 错误的类型转换 数组下标越界 空指针访问 IOExeption 从一个不存在的文件中读取数据 越过文件结尾继续读取 连接一个不存在的URL,8,异常处理机制,Java程序的执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。 当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。 如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。 程
4、序员通常只能处理违例(Exception),而对错误(Error)无能为力,9,异常处理举例(1),public class Test12_2 public static void main(String args) String friends=“lisa“,“bily“,“kessy“; try for(int i=0;i5;i+) System.out.println(friendsi); catch(java.lang.ArrayIndexOutOfBoundsException e) System.out.println(“index err“); System.out.printl
5、n(“nthis is the end“); ,10,异常处理举例(2),程序Test12_2运行结果:java Test12_2 lisa bily kessy index err this is the end Press any key to continue.,11,捕获异常(1),捕获异常是通过try-catch-finally语句实现的。 try /可能产生异常的代码 catch( ExceptionName1 e ) /当产生ExceptionName1型异常时的处置措施 catch( ExceptionName2 e ) /当产生ExceptionName2型异常时的处置措施
6、finally /无条件执行的语句 ,12,捕获异常(2),try 捕获异常的第一步是用try语句块选定捕获异常的范围。 catch 在catch语句块中是对异常对象进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。与其它对象一样,可以访问一个异常对象的成员变量或调用它的方法。 getMessage( ) 方法,用来得到有关异常事件的信息 printStackTrace( )用来跟踪异常事件发生时执行堆栈的内容。,13,捕获异常(3),finally 捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得在控制流转到程
7、序的其它部分以前,能够对程序的状态作统一的管理。不论在try代码块中是否发生了异常事件,finally块中的语句都会被执行。 finally语句是任选的,14,捕获异常(4),try startFaucet(); waterLawn(); catch (BrokenPipeException e) logProblem(); finally stopFaucet(); ,15,IOException异常处理举例(1),import java.io.*; public class Test12_3 public static void main(String args) FileInputStr
8、eam in=new FileInputStream(“myfile.txt“); int b; b = in.read(); while(b!= -1) System.out.print(char)b); b = in.read(); in.close(); ,16,IOException异常处理举例(2),程序Test12_3编译结果: E:exjavac Test12_3.java E:exTest12_3.java:4: 未报告的异常 java.io.FileNotFoundException ;必须被捕获或被声明抛出 FileInputStream in=new FileInputS
9、tream(“myfile.txt“); E:exTest12_3.java:6: 未报告的异常 java.io.IOException ;必须被捕获或被声明抛出 b = in.read(); E:exTest12_3.java:9: 未报告的异常 java.io.IOException ;必须被捕获或被声明抛出 b = in.read(); E:exTest12_3.java:11: 未报告的异常 java.io.IOException ;必须被捕获或被声明抛出 in.close(); 4 个错误,17,IOException异常处理举例(3),import java.io.*; publi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序员 培训 定制 课程 c08
链接地址:https://www.31doc.com/p-2145513.html