第11讲 Java异常处理.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文档。上传文档
查看更多
第十一讲Java异常处理 本讲主要内容: 异常和异常处理机制 异常的封装和分类 异常处理的实现 建立自己的异常类 一、异常和异常处理机制 什么是异常? 一个程序可行的,需要编译成功和运行无错两方面配合。 异常(Exception)是程序执行过程中意想不到的情况。 class Excep{ public int div(int a,int b){ return a/b; } } class TestExcep{ public static void main(String[] aa){ Excep ec=new Excep(); ec.div(5,0); System.out.println(OK); } } 什么是异常?(续) 结论: 编译成功的程序未必可以正确运行。 如:除以零、打开一个不存在的文件、网络连接中断、数组下标越界、正在加载的类文件丢失等。 不能正确运行,意味产生了异常。 什么是异常处理? 如果对异常不进行处理,JVM就会显示出错信息,并中止程序执行。 异常处理是一种处理异常的机制。在程序中给出另一段(多段)错误处理的代码,当JVM发现异常时,转至该段代码执行。 二、异常的封装 异常的封装 Java中,异常是以类的形式封装的。 1)程序中可处理的异常:定义了程序中遇到的轻微的错误条件。 异常的封装(续) 2)错误异常:定义了程序中不能恢复的严重错误条件。如内存溢出、类文件格式错误等。这一类错误程序无法处理。 编译时受检的异常 受检异常(Checked Exception) 在编译时被能Java编译器检测到的异常。 RuntimeException之外的Exception都是受检异常。 受检异常必须在编译时进行处理。 非受检异常(Unchecked Exception) 在编译时不能检测到的异常,包括: ? RuntimeException的所有子类异常。 ? Error异常。 获得的异常的有关信息 Exception的方法可用来获取当前异常的信息 public String getMessage() 返回描述当前异常性质的简略信息 public String toString() 返回描述当前异常类和异常性质的信息 public void printStackTrace() 在当前的标准输出上输出错误信息(错误异常类、错误性质、发生错误的类和方法) 异常的封装 思考 1. 通过编译的程序运行时会产生异常吗? 2. 程序运行时产生的异常类是? 3. 欲打开一个文件,发现文件不存在,这是什么异常? 4. 文件相关的异常是受检还是非受检异常? 5. 程序无法处理的异常是? 三、异常处理的实现 异常处理的实现 异常处理的机制需要落实到具体的处理代码上。 Java的异常处理方式有两种:捕捉异常和转移异常。 捕捉异常 “捕捉异常”的异常处理方式对受检异常、运行时异常均适用。捕捉异常处理语句是try~catch,其形式是: 流程分析说明: ? 生成异常,执行过程中遇到异常,自动产生一个对应异常类的对象 ? 抛出异常,将生成的异常对象提交给JVM ? 捕获异常,JVM寻找能处理这一异常的代码,并将当前异常对象作为参数传递过去,交由处理。 捕捉异常(续) 例:给Excep.java加入异常处理,发生异常时可显示异常的基本信息。 class TestExcep{ public static void main(String[] args){ try{ NewExcep ec = new NewExcep(); ec.div(5,0); System.out.println(Its a flag.); } catch(Exception e){ System.out.println(e.getMessage()); } System.out.println(OK); } } class NewExcep{ public int div(int a,int b){ return a/b; } } 捕捉异常(续) 思考? 1. 如果catch后给出空语句{},情形会是怎样? 2. 如果JVM找不到对应的异常处理代码,会是怎样? 3. 异常没有发生,catch段会执行到吗? 4. 异常发生了,try体内产生异常语句的后续语句,有机会继续执行吗? 捕捉异常(续) 练习:编译、修改并执行以下程序,以创建磁盘文件。 i

文档评论(0)

186****8818 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档