文档介绍:第9章异常处理
异常与异常类
抛出异常
异常的捕捉及处理
finally语句
习题
异常与异常类
异常是指程序运行过程中出现的非正常事件。
Java语言的异常处理机制可以将具体操作代码和异常处理代码分开,在一个地方集中处理异常。
异常与异常类(续)
Throwable:
Error
代表系统错误。
Exception
代表可能从任何Java方法或运行期偶发事件中掷出的异常。
异常与异常类(续)
Exception异常:
ClassNotFoundException 未找到欲装载的类FileNotFoundException essException 非法访问类 InterruptedException 中断异常 IOException 输入、输出错误MalformedURLException URL格式错误 NoSuchFieldException 没有找到所要的数据域NoSuchMethodException 没有找到所要的方法RuntimeException Java解释器执行正常指令时发生错误UnknownHostException 无法确定主机的IP地址接口
异常与异常类(续)
RuntimeException异常:
ArithmeticException 算术运算错误,如除数为0 ArrayStoreException 向数组中存入的数据类型不正确ClassCastException 类强制转换错误IllegalArgumentException 方法调用时传递的参数类型错误IndexOutOfBoundsException 索引值超出范围错误NegativeArraySizeException 创建的数组元素为负数个错误NullPointerException 访问空对象错误
SecurityException 安全性错误ArrayIndexOutOfBoundsException 数组越界使用错误StringIndexOutOfBoundsException 字符串索引值超出范围错误
IllegalThreadStateException 执行线程不合规定NumberFormatException 字符串转换为数值时发生错误
异常与异常类(续)
Exception类的构造方法:
public Exception()
public Exception(String s)
Throwable类的成员方法:
String getMessage()
String toString()
void printStackTrace()
异常与异常类(续)
自定义异常类:
class MyException1 extends Exception{}
class MyException2 extends Exception
{
public String toString()
{
return "MyException2 thrown";
}
}
抛出异常
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;
}
异常的捕捉及处理
try{
可能抛出异常的程序代码
}
catch(Type1 id1)
{
对Type1类异常进行处理的代码
}
catch(Type2 id2)
{
对Type2类异常进行处理的代码
}
……
catch(TypeN idN)
{
对TypeN类异常进行处理的代码
}
异常的捕捉及处理(续)
例9-2 异常处理
SumUpException 0
SumUpException 10
SumUpException
SumUpException 5 2
源代码
运行
运行
运行
运行