- 2
- 0
- 约8.94千字
- 约 31页
- 2017-03-29 发布于四川
- 举报
面向对象的程序的设计—Java张白一第3版第12章节
第12章 异常处理 12.1 Java的异常处理机制 Java的异常处理机制用于及时有效地处理程序运行中的异常错误。按照这种机制,人们在程序中监视可能发生异常的程序块,一个程序中的所有异常被收集起来放到程序的某一段中处理。这就使人们不必在被监视的程序块中多处插入处理异常的代码,使完成正常功能的程序代码与进行异常处理的程序代码分开。 12.1.1 异常处理机制的结构 Java中引入了异常和异常类,并且定义了很多异常类。每个异常类代表一类运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。每当Java程序运行过程中发生一个可识别的运行错误时,系统都会产生一个相应异常类的对象,并由系统中相应的机制来处理,以确保不会产生死机、死循环或其他对操作系统有损害的结果,从而保证了整个程序运行的安全性。 在Java程序中,当程序运行过程中发生异常时,可采用如图12.1所示的两种方式处理异常:一是由Java异常处理机制的预设处理方法来处理,即一旦程序发生异常,程序就会被终止并显示一些错误信息给用户;二是使用Java语言提供的try-catch-finally语句自行处理异常。第二种方式的优点很多,其中最主要的优点是将处理异常的代码与程序代码的主线分离开来,增强了程序的可读性;其次是可减少中途终止程序运行的可能性。 图12.1 异常处理机制结构 ?【示例程序C12_1.java】 系统自动抛出异常。 public class C12_1 { public static void main(String[?] args) { int a,b,c; a=67; b=0; c=a/b; System.out.println(a+“/”+b+“=”+c); } } 该程序在NetBeans环境下的运行结果如下: Exception in thread “main” java.lang.ArithmeticException: / by zero at C12_1.main(C12_1.java:6) Java Result: 1 12.1.2 异常类的继承关系 Java中定义了很多异常类,每个异常类都代表了一类运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。这些异常类的继承结构如图12.2所示。 在Java语言中所有的异常类都继承自java.lang.Throwable类。Throwable类有两个直接子类:一个是Error子类,它包含Java系统或执行环境中发生的异常,这些异常是用户无法捕捉到的;另一个是Exception类,它包含了一般性的异常,如I/O异常、SQL异常,这些异常是用户可以捕捉到的,可以通过产生它的子类来创建自己的异常处理。下面分别论述。 图12.2 异常类的继承结构 (5) 系统定义的运行异常Exception类。 (6) 系统定义的运行异常Error类。 在系统定义的运行异常Error类中,除AWTError类在java.awt包中外,其余的全部在java.lang包中。 java.lang包中的Error类如下: 12.2 Java的异常处理语句 Java语言的异常处理是通过try、catch、finally、throw和throws语句来实现的。12.2.1 try-catch-finally语句 在大多数情况下,系统预设的异常处理方法只会输出一些简单的信息到显示器上,然后结束程序的执行。这样的处理方式在许多情况下并不符合我们的要求。为此,Java语言为我们提供了try-catch-finally语句,使用该语句可以明确地捕捉到某种类型的异常,并按我们的要求加以适当处理,这才是发挥异常处理机制的最佳方式。try-catch-finally的结构如图12.3所示。 图12.3 try-catch-finally的结构 try-catch-finally组合语句用来实现抛出异常和捕获异常的功能。其格式如下: try { statements //可能发生异常的程序代码 } catch (ExceptionType1 ExceptionObject) { Exception Handling //处理异常的程序代码1 } catch(ExceptionType2 ExceptionObject) { Ex
您可能关注的文档
最近下载
- 2026年养老产业行业创新报告.docx
- C正谱怜悯我吧上帝 pieta signore.pdf VIP
- 《专业工程管理与实务》.pdf VIP
- 中国血栓性疾病防治指南(2025版).docx VIP
- 施工质量日志-.xls VIP
- 2025年国家公务员全国总工会面试题及答案.docx VIP
- 合肥市普通高中六校联盟2025-2026学年高三第一次语文教学质量监测+答案.docx VIP
- 局部晚期食管癌患者新辅助免疫治疗与常规新辅助治疗的比较:系统评价和meta分析.pdf
- 2025以骑手为代表的新就业群体研究报告:职业技能与跑单时长对收入的共同作用.pdf VIP
- 年产一亿片别嘌呤醇的车间工艺设计.doc VIP
原创力文档

文档评论(0)