异常处理程序的基本形式
try {
……//程序块
}
catch (ExceptionType1 e) {
……// 对ExceptionType1的处理
}
catch (ExceptionType2 e) {
……// 对ExceptionType2的处理,处理了一部分,
throw(e); //再抛出这个“异常”给上层的调用者
}
……
finally {……//总是要执行的语句
}
}
异常对象
每个异常都是一个对象,它是Throwable类或
其它子类的实例.当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。
Throwable类有两个标准子类:
错误类:java.lang.Error
错误Error类一般是指虚拟机相关的问题,
异常类:java.lang.Exception
异常Exception类则是指一些可以被捕获且可能恢复的异常情况,如数组下标越界
Java异常类的继承关系
常见的可检测异常有:
ClassNotFoundException;//没有找到指定类的定义
IOException;//指示产生某种输入/输出异常。
FileNotFoundException;//文件没有找到异常。
ArithmeticException //没有找到链接地址异常
捕获异常
Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally
和所有的捕获异常程序一样,第一步是用try关键字
选定监控异常的代码范围,然后在这段程序之后使用
catch关键字捕获异常,每个try代码块可以使用多个
catch代码块来对应,而catch语句需要指名它所捕获
的异常的类型名。
抛出异常
Java可能会抛出异常的情况包括:调用的方法抛出了异常、检测到了错误并使用throw语句抛出异常、程序代码有错误,从而导致异常,比如数组越界错误、Java运行时刻系统产生内部错误。当前两种异常发生时,应该告诉使用这个方法的人,此方法强迫Java抛出异常。因为任何抛出异常的方法都是导致程序死亡的陷阱,如果没有任何代码来处理方法抛出的异常,就会导致程序结束