c9java异常.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c9java异常,java异常处理机制,java异常处理,java异常分类,java常见异常,java自定义异常,异常,java之父,java异常有哪些,java空指针异常

Java 异常 第九章 作业补充 P122 目标 了解异常的定义 了解异常的分类 掌握 try、catch 和 finally 语句的用法 掌握throw、throws子句的用法 掌握如何定义自己的异常 异常的概念 程序设计中,错误不可避免 编译错误 逻辑错误 正确程序也会发生错误 比如,程序正在读光盘,用户将光盘取出;正在通信时,网络忽然断开 错误分类 编译时错误 运行时错误 运行时发生的错误称为异常。处理这些异常就称为异常处理。 一旦引发异常,程序将突然中止,且控制将返回操作系统 Java异常处理机制 采用统一和相对简单的抛出/处理错误机制 抛出异常 如果一个方法本身发生错误,则创建异常对象并抛出,称为引发异常 处理异常 当所调用的方法出现异常时,调用者可以捕获异常使之得到处理 也可以回避异常,这时异常将在调用的堆栈中向下传递,直到被处理。如方法 A调用B, B调用C,若C出现异常, B可捕获;若B回避,则A可处理。若所有方法都不处理,JVM处理,一般将终止程序运行。 JVM?… … ?A ? B ? C (堆栈中的调用链) 异常体系结构 Java异常的分类 一类异常是RuntimeException类及其子类的对象。 这类异常,在正确的程序里不应该出现,比如除0,空指针等。这是“程序员的错误或疏忽” 。 Java 允许不对此类异常进行处理(捕获或回避)。 因为此类错误程序员可以避免。因此,正确的处理方式是修正错误,而不是捕获异常。 其他Exception子类的对象,如IOException等, 即使在正确的程序里也很有可能出现。 这一类异常, Java要求程序里面必须处理(捕获或回避) ,否则就会出现编译错误。 因为此类错误属于环境原因造成的,不属于程序员的可控范围。除了异常处理,别无更好方法。 常见异常及其用途 2-1 常见的异常及其用途 2-2 异常处理模型 抛出异常 throw 异常对象; 处理异常 捕获方式: try、catch 、 finally ,可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内 回避方式: throws ,在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理。 抛出异常 捕获异常2-1 try{ /*可能出现异常的操作*/ } catch(ExceptionType1){ /*异常处理语句*/ } catch(ExceptionType2){ /*异常处理语句*/ } … … finally{/*一定要执行的语句*/} 出现异常后,当前操作将中断,后面语句也不再执行,直接跳到catch语句,将异常类型和catch后异常类型进行匹配,若找到匹配项,则执行,不再执行其他catch语句。 finally 中语句不管是否发生异常都将执行。 捕获异常2-2 捕获顺序 特殊异常的捕获应靠前放,一般类型的异常捕获应靠后放 try 后要至少有一个catch或finally语句 TryCatchDemo.java try - catch 块示例 public class ExceptionDemo { ? public static void main(String args[]) { try { int c= calculate(9,0); System.out.println(c); } catch (Exception e) { System.err.println(发生异常: + e.toString()); e.printStackTrace(); } } ? static int calculate(int a, int b) { int c = a/b; return c; } } 多个 catch 块 单个代码片段可能会引起多个错误。 可提供多个 catch 块分别处理各种异常类型。 MoreCatchDemo.java 多个 catch 块示例 class Catch22 { ? public static void main(String args[]) { try { String num=args[0]; int numValue=Integer.parseInt(num); System.out.println(平方为 +numValue*numValue); } catch(ArrayIndexOutOfBoundsException ne) { System.out.println(未提供任何参数!); } catch(NumberFor

文档评论(0)

badjka + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档