Java中的异常实现了接口Throwable
//显示异常消息
String getMessage();
//转化为字符串
String toString();
//显示堆栈追踪信息
void printStackTrace();
void printStackTrace(PrintStream );
}
接口Throwable派生出两个类Error和Exception
其中Error是系统错误,是不可控制的
Ecxeption则是抛出的异常,提供给程序员可以做相应处理
有一种特殊的Exception叫RuntimeException
普通Exception
函数声明时必须通知客户程序员可能抛出的异常
void function() throws tooBig,tooSmall.oldType { //Body}
允许声明抛出不存在的异常,方便以后程序升级
Run-time Exception
不需主动throw 不需在声明函数时声明
通过系统自动throw 如果没有遇到相应的Catch 则中断程序,并printStackTrace();
自定义异常通常继承自Exception或RuntimeException
捕获异常:
try {
//可能抛出异常的语句
}
catch(异常参数) {
//异常处理
}
finally {
//不论有无异常一定执行的语句
}
其中catch语句可以有多条 其中异常参数应该遵循范围从小到大的规则
如catch(FileNotFoundException fe) {}
catch(IOException ie) {}
catch(Exception e) {}
顺序一定不能错
方法遇到异常后方法就要被终止,因此,finally语句是相当必要的。例如当try打开一个文件时,无论如何,最后都应当把文件关闭。这是就应该在finally里做文件关闭的相关操作