- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章异常处理解读
第8章 异常处理 8.1 异常概述 8.2 异常处理机制 8.3 自定义异常类 8.1 异常概述 在Java中,任何异常都是java.lang.Throwable类或其子类的对象,Throwable类是Java异常类体系中的根类,如图8.1所示,它有两个子类:Error和Exception。 8.1 异常概述 Error类:系统错误类,代表程序运行时Java系统内部错误,这种错误程序员一般不用关心,因它们通常由硬件或操作系统所引发,一旦发生,程序员除了告知用户并关闭程序之外,别无他法。 Exception类:异常类,该类(及其子类)的对象表示的错误往往是因算法考虑不周或由于编程过程中疏忽大意、未考虑到某些特殊情形而引起的,值得程序员认真对待并尽可能地加以处理。 8 . 2 异常处理机制 8.2.1 异常的捕获与处理 Java使用try-catch-finally语句来捕获并处理异常,该语句的语法格式如下: try { // 可能会产生异常的程序代码 }catch(Exception_1 e1) { // 处理异常Exception_1的代码 }catch(Exception_2 e2) { // 处理异常Exception_2的代码 } … catch(Exception_n en) { // 处理异常Exception_n的代码 }finally { // 通常是释放资源的程序代码 } 整个语句由try、catch和finally三部分语句块组成,其中catch和finally都是可以默认的,但Java规范不允许两者同时默认。 8.2.1 异常的捕获与处理 (1)try语句块 该段代码是程序正常情况下应该要完成的功能,在执行过程中可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句块要分别对这些异常作出相应的处理。try语句块后通常跟0或多个catch语句块,还可以有至多一个finally语句块。 (2)catch语句块 每个catch语句块声明其能处理的一种特定类型的异常并提供处理代码。当异常发生时,程序会中止当前流程,根据获取异常的类型去执行相应的catch语句块。在catch中声明的异常对象(catch(Exception_n en))封装了异常事件发生的信息,在catch语句块中可以使用该对象的一些方法来获取这些信息。例如下面的方法: ? getMessage():用来得到有关异常事件的信息。 ? printStackTrace():用来跟踪异常事件发生时执行堆栈的内容。 (3)finally语句块 无论try语句块是否抛出异常,finally语句块都要被执行,它为异常处理提供一个统一的接口,使得在控制流程转到程序其他部分以前,能够对程序的状态作出统一管理。 8.2.1 异常的捕获与处理 try-catch-finally语句的语义: 首先执行try语句块中的代码,若一切正常,则跳过catch语句块,执行finally语句块中的代码,执行完后,整个try-catch-finally语句才算执行完成。若执行try语句块时产生异常,则立即跳转到catch语句块。JVM会把实际抛出的异常对象依次与各catch语句块所声明的异常类型匹配,若为某个异常类(或其子类)的对象,就执行这个catch语句块,并且不再执行其他的catch语句块,之后,跳转到finally语句块执行,完毕后整个语句才算执行完成。下图8.2展示了捕获和没有捕获到异常时程序的执行流程。 8.2.1 异常的捕获与处理 在Java 7以前,每个catch语句块只能捕获一种异常;但从Java 7开始支持在一个catch语句块中捕获多种类型的异常,多个异常类型之间以竖线(|)隔开,写法如下: try { // 可能会产生异常的程序代码 }catch(Exception_1 | Exception_2 |…| Exception_n e) { // 统一处理异常Exception_1、Exception_2、…、Exception_n的代码 }finally { // 释放资源的程序代码 } 8.2.1 异常的捕获与处理 【例8.1】算术运算异常的捕获和处理。 UseException.java import java.io.*; public class UseException { public static void main(String[] args) { try { int a, b; a = Integer.parseInt(args[0]); b = Integer.parseInt(args[1]); System.out.println(a + /
您可能关注的文档
最近下载
- 《混合动力电动汽车》课件.ppt VIP
- 高级英语第一册-U10-The-Artist-in-America.ppt VIP
- 狗主粮行业调研报告解数咨询14117mb.pptx VIP
- 剑桥少儿英语二级下册第一单元课件.pptx VIP
- 解数咨询-猫砂行业调研报告.docx VIP
- 耳部全息铜砭刮痧.docx VIP
- 猫零食行业调研报告-解数咨询-202310.docx VIP
- 2025年一级注册建筑师考试试卷附完整答案(历年真题).docx VIP
- FDA质量体系规范中文版21 CFR Part 820 (2022.12.16更新).docx VIP
- 《混凝土工程量计算》课件.ppt VIP
文档评论(0)