欢迎来到天天文库
浏览记录
ID:20791929
大小:151.50 KB
页数:31页
时间:2018-10-15
《java程序员培训定制课程c08》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章Java异常和断言本课内容Java异常的概念和处理机制Java异常的分类异常的捕获、处理和抛出使用用户自定义异常断言2Java异常Java程序运行过程中所发生的异常事件可分为两类:错误(Error):JVM系统内部错误、资源耗尽等严重情况违例(Exception):其它因编程错误或偶然的外在因素导致的一般性问题,例如:对负数开平方根空指针访问试图读取不存在的文件网络连接中断3Java异常举例(1)publicclassTest12_1{publicstaticvoidmain(String[]args)
2、{Stringfriends[]={"lisa","bily","kessy"};for(inti=0;i<5;i++){System.out.println(friends[i]);}System.out.println("thisistheend");}}4Java异常举例(2)程序Test12_1运行结果:javaTest12_1lisabilykessyExceptioninthread"main"java.lang.ArrayIndexOutOfBoundsExceptionatTest12_1
3、.main(Test12_1.java:5)Pressanykeytocontinue...5Java异常类层次6常见异常RuntimeException错误的类型转换数组下标越界空指针访问IOExeption从一个不存在的文件中读取数据越过文件结尾继续读取连接一个不存在的URL7异常处理机制Java程序的执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交
4、给其处理,这一过程称为捕获(catch)异常。如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。程序员通常只能处理违例(Exception),而对错误(Error)无能为力8异常处理举例(1)publicclassTest12_2{publicstaticvoidmain(String[]args){Stringfriends[]={"lisa","bily","kessy"};try{for(inti=0;i<5;i++){System.out.println(
5、friends[i]);}}catch(java.lang.ArrayIndexOutOfBoundsExceptione){System.out.println("indexerr");}System.out.println("thisistheend");}}9异常处理举例(2)程序Test12_2运行结果:javaTest12_2lisabilykessyindexerrthisistheendPressanykeytocontinue...10捕获异常(1)捕获异常是通过try-catch-fin
6、ally语句实现的。try{......//可能产生异常的代码}catch(ExceptionName1e){......//当产生ExceptionName1型异常时的处置措施}catch(ExceptionName2e){......//当产生ExceptionName2型异常时的处置措施}[finally{......//无条件执行的语句}]11捕获异常(2)try捕获异常的第一步是用try{…}语句块选定捕获异常的范围。catch在catch语句块中是对异常对象进行处理的代码,每个try语句块可以伴随
7、一个或多个catch语句,用于处理可能产生的不同类型的异常对象。与其它对象一样,可以访问一个异常对象的成员变量或调用它的方法。getMessage()方法,用来得到有关异常事件的信息printStackTrace()用来跟踪异常事件发生时执行堆栈的内容。12捕获异常(3)finally捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。不论在try代码块中是否发生了异常事件,finally块中的语句都会被执行。finally
8、语句是任选的13捕获异常(4)try{startFaucet();waterLawn();}catch(BrokenPipeExceptione){logProblem();}finally{stopFaucet();}14IOException异常处理举例(1)importjava.io.*;publicclassTest12_3{publicstaticvoidmain(String[]args
此文档下载收益归作者所有