- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
6.1异常和异常处理
6.2异常处理语句
6.3创建用户自定义异常类;6.1异常和异常处理;6.1.1异常
异常是程序运行过程中由于硬件设备问题或者软件设计缺陷而产生的不正常情况,如文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。
它主要帮助我们在debug的过程中解决下面三个问题。
什么出错?
哪里出错?
为什么出错?
但是,并不是所有的错误都是异常,错误有时候是可以避免的。比如,代码少了一个分号,那么运行结果会提示java.lang.Error,表示出错;如果使用System.out.println(11/0)语句,那么因为用0做了除数,系统会抛出java.lang.ArithmeticException的异常。有些异常需要作处理,有些则不需要。;6.1.2异常处理机制
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点。从学习编程开始,我们会有意或无意地使用if-else来控制异常,然而这种控制非常繁琐,如果多个地方出现同一个异常或者错误,那么每个地方都要作相同处理,感觉相当麻烦,因此很多编程语言设计了异常处理机制。
异常处理机制是指当异常产生时,为了让程序不中断而继续运行的机制。每种语言对于异常的处理可能会不一样,在Java中,异常处理机制包括Error和Exception两个部分。它们都继承自一个共同的基类Throwable。
Error属于JVM运行中发生的一些错误,虽然并不属于开发人员的范畴,但是有些Error还是由代码引起的。比如,StackOverflowError经常由递归操作引起,这种错误一般无法挽救,只能依靠JVM。而Exception假设程序员会处理这些异常,比如数据库连接出了异常,那么我们可以处理这个异常,并且重新连接等。Exception分为两种,即检查类型(Checked)和非检查类型(Unchecked)。检查类型的异常是指程序员明确地声明或者用try-catch语句来处理的异常,而非检查类型的异常则没有这些限制。比如,常见的NullPointerException就是非检查类型,它继承自RuntimeException。Java是目前主流编程语言中唯一一个推崇使用检查类型异常的。
Java程序的执行过程中如出现异常,会自动生成一个异常对象,该异常对象将被提交给Java运行时系统,这个过程??为抛出(throw)异常。
;当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。
如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。
程序员通常只能处理异常(Exception),而对错误(Error)无能为力。
6.1.3Java中异常类和异常对象
Java中的异常用对象来表示。Java对异常的处理是按异常分类进行的,不同异常有不同的分类,每种异常都对应一个类型(Class),每个异常都对应一个异常(类的)对象。
异常类的来源有两个:一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。Exception类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件。
异常对象的来源有两个:一是Java运行时环境自动抛出系统生成的异常,而不管程序员是否愿意捕获和处理,它总要被抛出,比如除数为0的异常;二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw关键字抛出异常,该异常用来向调用者汇报异常的一些信息。
Java异常类层次结构如图6.1所示。;1.Throwable
Throwable类是Java语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过Java虚拟机或者Javathrow语句抛出。类似,只有此类(或其子类之一)才可以是catch子句中的参数类型。Error和Exception通常用于指出发生了异常情况。这些实例一般是在异常情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)。
2.Exception
Exception类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件,表示程序本身可以处理的异常。
3.Error
Error是Throwable的子类,表示仅靠程序本身无法恢复的严重错误,用于指出合理的应用程序不应该试图捕获的严重问题。
在执行该方法期间,无需在方法中通过throws声明可能抛出但没有捕获的Error的任何子类,因为Java编译器不去检查它。也就是说,当程序中可能
您可能关注的文档
- 《新媒体创意与作品设计(全彩慕课版)》-习题及答案 .docx
- 《新媒体创意与作品设计(全彩慕课版)》-教案全套 郭伟 第1--9章 新媒体与新媒体创意设计---微信小程序设计.doc
- 《新媒体创意与作品设计(全彩慕课版)》-教学大纲 .doc
- 《新媒体创意与作品设计(全彩慕课版)》-课程标准 .doc
- 基于新信息技术的Java程序设计基础 课件 第2章 Java程序设计基础.pptx
- 基于新信息技术的Java程序设计基础 课件 第3章 Java流程控制语句.pptx
- 基于新信息技术的Java程序设计基础 课件 第4章 数组与字符串.pptx
- 基于新信息技术的Java程序设计基础 课件 第5章 面向对象程序设计.pptx
- 基于新信息技术的Java程序设计基础 课件 第7章 多线程程序设计.pptx
- 基于新信息技术的Java程序设计基础 课件 第8章 数据库编程.pptx
- 安全操作规程汇编(汇总).doc
- 陕西省西安市长安区2024届九年级下学期中考二模数学试卷(含答案).docx
- 第3章 一元一次不等式 浙教版数学八年级上册单元培优测试卷(含答案).docx
- 云南省昭通市永善县2024届九年级下学期中考一模数学试卷(含答案).docx
- 北师大版数学七年级上册 第4章 第37课时 比较线段的长短习题课件.pptx
- 24.2 直角三角形的性质 华师大版数学九年级上册课件.pptx
- 2024届中考数学一次函数天天练(7)及答案.docx
- 24.4 解直角三角形 华东师大版数学九年级上册教案3.docx
- 云南省昭通市彝良县2024届九年级下学期中考二模数学试卷(含解析).docx
- 西藏日喀则市亚东县2024届九年级下学期中考一模数学试卷(含答案).docx
文档评论(0)