第9章异常处理 ava 91异常与异常类 92抛出异常 9.3异常的捕捉及处理 94 finally语句 95习题
第9章 异常处理 9.1 异常与异常类 9.2 抛出异常 9.3 异常的捕捉及处理 9.4 finally语句 9.5 习题
91异常与异常类 ava 异常是指程序运行过程中出现的非正常 事件。 Java语言的异常处理机制可以将具体操作 代码和异常处理代码分开,在一个地方 集中处理异常
9.1 异常与异常类 异常是指程序运行过程中出现的非正常 事件。 Java语言的异常处理机制可以将具体操作 代码和异常处理代码分开,在一个地方 集中处理异常
91异常与异常类(续)b Throwable EY¥Or 代表系统错误。 Exception 代表可能从任何Java方法或运行期偶发事件中掷 出的异常
9.1 异常与异常类(续) Throwable: – Error 代表系统错误。 – Exception 代表可能从任何Java方法或运行期偶发事件中掷 出的异常
1异常与异常类(续)b Exception异常 ClassNot FoundException 未找到欲装载的类 FileNotFoundException 未找到指定的文件或目录 IllegalAccessException 非法访问类 InterruptedException 中断异常 IOException 输入、输出错误 MalformedURLException URL格式错误 NoSuchFieldException 没有找到所要的数据域 NoSuchMethodException 没有找到所要的方法 RuntimeException ava解释器执行正常指令时发生错误 UnknownHostException 无法确定主机的IP地址接口
9.1 异常与异常类(续) Exception异常: ClassNotFoundException 未找到欲装载的类 FileNotFoundException 未找到指定的文件或目录 IllegalAccessException 非法访问类 InterruptedException 中断异常 IOException 输入、输出错误 MalformedURLException URL格式错误 NoSuchFieldException 没有找到所要的数据域 NoSuchMethodException 没有找到所要的方法 RuntimeException Java解释器执行正常指令时发生错误 UnknownHostException 无法确定主机的IP地址接口
1异常与异常类(续) ava Runtimeexception异常: ArithmeticException 算术运算错误,如除数为0 ArraystoreException 向数组中存入的数据类型不正确 ClassCastException 类强制转换错误 工 legalArgumentEκ ception方法调用时传递的参数类型错误 IndexOutofBoundsEκ ception索引值超出范围错误 NegativeArraysizeException创建的数组元素为负数个错误 NullPointerException 访问空对象错误 SecurityException 安全性错误 ArrayIndexOutofBoundsException数组越界使用错误 String IndexOutofBoundsException字符串索引值超出范围错误 Illegal ThreadstateException 执行线程不合规定 NumberFormatException 字符串转换为数值时发生错误
9.1 异常与异常类(续) RuntimeException异常: ArithmeticException 算术运算错误,如除数为0 ArrayStoreException 向数组中存入的数据类型不正确 ClassCastException 类强制转换错误 IllegalArgumentException 方法调用时传递的参数类型错误 IndexOutOfBoundsException 索引值超出范围错误 NegativeArraySizeException 创建的数组元素为负数个错误 NullPointerException 访问空对象错误 SecurityException 安全性错误 ArrayIndexOutOfBoundsException 数组越界使用错误 StringIndexOutOfBoundsException 字符串索引值超出范围错误 IllegalThreadStateException 执行线程不合规定 NumberFormatException 字符串转换为数值时发生错误
1异常与异常类(续) ava Exception类的构造方法: public Exception( public Exception(string s) Throwable类的成员方法: string getMessage( string tostring () void printstackfrace(
9.1 异常与异常类(续) Exception类的构造方法: – public Exception() – public Exception(String s) Throwable类的成员方法: – String getMessage() – String toString() – void printStackTrace()
1异常与异常类(续) ava 自定义异常类: class MyExceptionl extends Exception( K lass MyException2 extends Exception public string tostring() return MyException2 thrown
9.1 异常与异常类(续) 自定义异常类: class MyException1 extends Exception{} class MyException2 extends Exception { public String toString() { return "MyException2 thrown"; } }
92抛出异常 ava static int f(int a int b throws MyExceptionl, MyException2 if(a<o) throw new MyExceptionl()i if(b<o) throw new MyException2()i int c=a/b return ci
9.2 抛出异常 static int f(int a,int b) throws MyException1,MyException2 { if(a<0) throw new MyException1(); if(b<0) throw new MyException2(); int c=a/b; return c; }
9.3异常的捕捉及处理 可能抛出异常的程序代码 catch(Typel idl 对rype1类异常进行处理的代码 catch(Type2 id2 对rype2类异常进行处理的代码 catch(typen idN 对 TypeN类异常进行处理的代码
9.3 异常的捕捉及处理 try{ 可能抛出异常的程序代码 } catch(Type1 id1) { 对Type1类异常进行处理的代码 } catch(Type2 id2) { 对Type2类异常进行处理的代码 } …… catch(TypeN idN) { 对TypeN类异常进行处理的代码 }
93异常的捕捉及处理(续)b 例92异常处理 源代码 运 SumUpException O 运行 umUpException 10 运行 SumupException 5.6 运行 SumUpException 5 2
9.3 异常的捕捉及处理(续) 例9-2 异常处理 SumUpException 0 SumUpException 10 SumUpException 5.6 SumUpException 5 2 源代码 运 行 运 行 运 行 运 行