- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7异常处理.ppt
第七章 JAVA异常处理 7.1异常简介 7.1异常简介 缺点? 程序的可读性差,维护困难。 如何更改? 在面向对象的编程语言中,用异常处理机制来统一处理错误。 7.1异常简介 1.什么是异常? 异常是指程序在执行过程中出现程序本身没有预料到的情况,从而导致程序错误地结束。 2.什么是异常处理机制? 在程序运行过程中发生错误时,允许不按照正常的路径完成任务,防止错误进一步恶化。 3.异常处理过程? 异常是一个对象,它在程序运行时创建,并在发生错误的位置被抛出(throw),由一定的接收机制来接收并处理。 7.1异常简介 4.异常对象 异常对象是某个异常类的实例,JAVA中已定义许多异常类,并允许程序员自己创建。每种异常类对应某一种或一类错误。 5.异常与if语句的区别 跳转语句可能有足够的信息指示在碰到某种问题时该如何解决,而异常必须将问题提交给一个更高级的负责人。 7.1异常简介 6.为什么要有异常处理机制? 例如除法,知道有零分母的情况下,可以直接使用if语句判断,但若分母是一个比较复杂计算的结果,难以预料,此时可以用异常处理。 7.2异常处理 1.JAVA异常处理机制 JAVA的异常处理机制由try和catch引导,结构如下: 7.2异常处理 2.try语句 try语句是用来包含有可能抛出异常的程序段,可以是几个简单的语句,也可以是方法的调用。如: 7.2异常处理 2.catch语句 catch块是专门用来捕获异常的地方。try中的程序段一旦遇到异常情况,则会转到异常控制器catch. catch的结构如下: 7.2异常处理 3.执行过程 执行时,程序用作为catch参数的异常类与try块中产生的异常对象比较,如果是该类的对象,就执行该catch语句块,否则转到下一个catch语句块 7.2.1异常分类 7.2.1异常分类 主要方法: (1)getMessage():用来返回用带参数的构造函数创建异常时的参数内容。 (2)toString():用来返回异常所属的异常类名及getMessage()能得到的内容。 (3)printStackTrace():在标准输出设备上打印出堆栈使用轨迹,即异常发生时已经使用了哪些类。 (4)fillInStackTrace():在异常重新抛出时使用。 7.2.1异常分类 7.2.2抛出异常 1.概念 JAVA程序在运行时如果引发了一个可识别的错误,就会产生一个与该错误相对应的异常类的对象,这个过程称为异常的抛出。 2.抛出异常的方法 (1)系统自动抛出的异常 所有的系统定义的运行异常都可以由系统自动抛 出。 7.2.2抛出异常 除0错误引起的异常 7.2.2抛出异常 (2)语句抛出的异常 用户程序自定义的异常不可能依靠系统自动抛出,因为系统不知道错误在哪里。此时,必须借助于throw语句抛出异常。语法格式: 修饰符 返回类型 方法名(参数列表)throws 异常类名列表 7.2.2抛出异常 使用throw语句抛出异常时应该注意的问题: 1一般这种抛出异常的语句应该被定义为在满足一定条件时执行,例如把throw定义在if语句分支中。 2含有throw语句的方法,应该在方法头定义中增加如下部分: throws 异常类名列表 7.2.2抛出异常 7.2.2抛出异常 人为抛出异常例 7.2.2抛出异常 人为抛出异常的作用? 很多时候是可以预见异常的发生的,这时人为抛出异常,可使程序的逻辑清晰,功能正确。 7.3捕获异常 JAVA中异常处理结构: 例子: 7.3.1捕获异常 注意: 如果在使用能够产生异常的方法而没有捕获和处理,将不能通过编译。 捕获的异常类型应该和抛出的异常类型相同,当然也可以用其父类。当满足下面三个条件之一,异常对象将被吸收: 1异常对象为catch参数指定的异常类的对象 2异常对象为catch参数指定的异常类的子类对象 3异常对象是实现了catch参数指定的接口的类对象 7.3.1捕获异常 因此,不能确定抛出的异常类型时,可以用Exception类。 例: 7.3.1捕获异常 JAVA中经常出现的3种异常:算术异常、字符串越界和数组越界。例: 7.3.1捕获异常 7.3.2重新抛出异常 有时希望把刚捕获的异常重新抛出,尤其是在使用Exception捕获所有异常的时候,既然已经得到了对当前异常对象的引用,可以直接把它重新抛出: 7.3.2重新抛出异常 7.3.2重新抛出异常 the original exception in F() caught in main Exce
原创力文档


文档评论(0)