Java语言程序设计 作者 李尊朝 苏军 第9章.ppt
文本预览下载声明
第九章 异常处理 9.1 Java异常处理机制 9.2 异常处理方式 9.1 异常处理机制 Java使用异常对程序给出一个统一和相对简单的抛出和处理错误的机制。如果一个方法本身能抛出异常,调用者可以捕获异常使之得到处理;也可以回避异常,这时异常将在调用的堆栈中向下传递,直到被处理。 异常类 在Java中,将异常情况分为Exception(异常)和Error(错误)两大类。 Error 类对象由 Java 虚拟机生成并抛出;Exception 类对象由应用程序处理或抛出。 Exception子类的继承关系 Exception ClassNotFoundException ClassNotSupportedException IllegalAccessException InstantiationException InterruptedException NoSuchMethodException RuntimeException ArithmeticException ArrayStoreException ClassCastException IllegalArgumentException IllegalThreadStateException NumberFormatException Exception子类(续) IllegalMonitorStateException IndexOutOfBoundsException ArrayIndexOutOfBoundsException StringIndexOutOfBoundsException NegativeArraySizeException NullPointerException SecurityException Exception 类的主要方法 public Exception( ); public Exception(String s); public String toString( ); public String getMessage( ); 9.2 异常处理方法 异常处理的方法有两种: 使用try…catch…finally结构对异常进行捕获和处理; 通过throws和throw抛出异常。 1 try…catch…finally结构 在Java中,可以通过try…catch…finally结构对异常进行捕获和处理,其形式如下: try { 可能出现异常的程序代码 } catch (异常类名1 异常对象名1) { 异常类名1对应的异常处理代码 } catch (异常类名2 异常对象名2) { 异常类名2对应的异常处理代码 } ┇ [ finally { 必须执行的代码 } ] 说明 将可能发生异常的程序代码放置在try程序块中。程序运行过程中,如果该块内的代码没有出现任何异常,后面的各catch块不起任何作用。但如果该块内的代码出现了异常,系统将终止try块代码的执行,自动跳转到所发生的异常类对应的catch块中,执行该块中的代码。 其中的finally块是个可选项,如果含有finally块,无论异常是否发生,finally块的代码必定执行。 一个try块可以对应多个catch块,用于对多个异常类进行捕获。 Java实例——捕获数组下标越界异常 public class Exception1 { public static void main(String args[]) { try { int a[]={1,2,3,4,5}, sum=0; for (int i=0; i=5; i++) sum=sum+a[i]; System.out.println(sum=+sum); System.out.println(Successfully! ); } catch (ArrayIndexOutOfBoundsException e) { System.out.println(ArrayIndexOutOfBoundsException detected); } finally { System.out.println( Programm Finished! ); } } } 例 --捕获算术异常 public class Exception2{ public static void main(St
显示全部