面向对象的程序的设计—Java张白一第3版第12章节.pptVIP

  • 2
  • 0
  • 约8.94千字
  • 约 31页
  • 2017-03-29 发布于四川
  • 举报

面向对象的程序的设计—Java张白一第3版第12章节.ppt

面向对象的程序的设计—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

文档评论(0)

1亿VIP精品文档

相关文档