java程序设计 (第2版)下ppt

java程序设计 (第2版)下ppt

ID:36203648

大小:639.50 KB

页数:158页

时间:2019-05-07

java程序设计 (第2版)下ppt_第1页
java程序设计 (第2版)下ppt_第2页
java程序设计 (第2版)下ppt_第3页
java程序设计 (第2版)下ppt_第4页
java程序设计 (第2版)下ppt_第5页
资源描述:

《java程序设计 (第2版)下ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java程序设计(第2版)Java程序设计(第2版)Java程序设计(第2版)第1章Java程序初步第2章数据与数据运算第3章Java语句第4章类和对象第5章字符串和包装类第6章继承和嵌入类第7章接口和包第8章数组第9章例外处理第10章线程与同步第11章文件与输入输出第12章泛型和集合框架第13章GUI设计第14章JavaappletJava程序设计(第2版)第9章例外处理一、例外的概念例外是方法代码运行时出现的非正常状态,这种非正常状态使程序无法或不能再正常地继续往下运行。Java采用面向对象的方法来处理例外:当一个方法在运行时发

2、生例外时,将产生相应类型的一个例外对象、中止代码继续往下运行并寻找相应的例外处理代码。94二、例外分类例外对象是指java.lang.Throwable类或其子类的实例。例外可分为受检查的例外和不受检查的例外两大类。对不受检查的例外,程序员通常可以不加处理;而对受检查的例外,程序员必须捕捉或声明由调用方法处理。95三、引发例外1.例外引发的两种情形:Java运行系统在发现异常情况时会自动引发例外。用throw语句显式引发:throw<例外对象>;2.例外引发时,代码将不再继续往下执行,而由系统寻找合适的例外处理代码执行。3.当不能寻

3、找到合适的例外处理代码时,将调用缺省例外处理程序,输出例外的类型及发生例外的位置。96四、声明抛出例外1.如果一个方法引发的是受检查的例外且自己没有捕捉,那么它必须用throws子句声明抛出:<返回类型><方法名>(<参数列表>)throws<例外类型列表>{……}2.如果一个方法引发例外(受检查或不受检查)而又没有捕捉处理,那么例外将沿着方法调用的反方向传播,寻找并转入合适的例外处理代码执行。3.覆盖方法不能比被覆盖方法抛出更多类型的受检查例外。97五、捕捉例外(一)Java使用try-catch-finally语句来捕捉和处理可

4、能发生的例外:try子句包含一段可能要发生例外的代码。一旦发生例外,将由后面的catch子句捕捉处理。catch子句可以有一个或多个,而且至少有一个catch子句或finally子句。98五、捕捉例外(二)--try和catch子句每个catch子句有一个参数,参数类型指明该子句能够捕捉的例外类型。当try子句引发例外并被catch子句被捕捉时,执行该catch子句,然后执行try语句后面的代码。如果try子句没有引发例外,则直接执行try语句后面的代码。99五、捕捉例外(三)--多个catch子句每个catch子句只能捕捉一种类型

5、的例外。运行系统将从上到下依次检查每个catch子句能够处理的例外类型,直到找到某个catch子句,其能够处理的例外类型与抛出的例外对象相容。两个catch子句不能捕捉同一类型的例外。若两个catch子句能够捕捉的类型是子类与超类的关系,那么应该子类在前,超类在后,即从特殊到一般。910五、捕捉例外(四)--未捕捉到的例外如果try子句引发例外,而又没有catch子句能够捕捉处理,那么例外将向外抛出。如果方法代码可能抛出的是受检查的例外,而方法体内又没有任何catch子句能够捕捉这种类型的例外,那么定义方法时必须用throws子句声

6、明抛出这种类型的例外。911五、捕捉例外(五)--再引发例外当catch子句捕捉到一个例外并进行处理时,也可能会引发一个新的例外。此时,原先的例外被抛弃,新的例外从try语句抛出并向外传播。新的例外应该被看作是由try语句引发而又没有捕捉的例外。912五、捕捉例外(六)--finally子句无论何种情况离开try子句,都会执行finally子句:如果try子句没有产生例外,跳过所有catch子句,执行finally子句,然后执行finally后的第一条语句。如果发生一个例外,跳过try代码块的其余部分,并由一个合适的catch子句处

7、理(如果存在),然后执行finally子句,最后继续执行finally后的第一条语句。913五、捕捉例外(六)--finally子句(续)如果发生一个例外,又找不到一个合适的catch子句处理,就直接执行finally子句,然后将例外沿着调用链的反方向向外层传递。如果在执行catch子句时抛出一个例外,那么先执行finally子句,然后将该例外沿着调用链的反方向向外层传递。如果由于跳转语句(return、break、continue)要离开try语句,在跳转前首先执行finally子句。914六、定义自己的例外类型定义例外类型的原因

8、主要有:现有例外类型不能准确描述所遇到的异常情况;需要向负责处理例外的调用者返回更多的信息,而不只是简单的描述串。定义的例外类型必须是Throwable类的子类。通常定义成Exception的子类。915七、构造方法与例外处理与普通方

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。