异常
1.异常机制:最大的好处就是清晰地分开了正常的业务逻辑代码和遇到情况时的处理代码
典型的try-catch块可用于捕捉异常并进行异常情况的处理
try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 }
多重捕获
try{
// 程序代码
}catch(异常类型1 异常的变量名1){
// 程序代码
}catch(异常类型2 异常的变量名2){
// 程序代码
}catch(异常类型2 异常的变量名2){
// 程序代码
}
2.异常的抛出与声明:
声明:如果你的函数可能抛出异常,就必须声明
你可以声明,但可以不真的抛出
void f() throws XXX,XXX,XXX{
}
3.如果你要调用一个声明了可能抛出异常的函数,那么必须
1)把函数的调用放在try块里,并设置catch来捕捉所有可能抛出的异常
2)或者声明自己可能会抛出无法处理的异常
什么能抛?
1)任何继承了Throwable类的对象
2)Exception类继承了Throwable类
throw new Exception();
throw new Exception("HELP");
4.异常捕捉时的匹配
catch按书写顺序依次匹配,先匹配到就不再找其他catch
而且,抛出子类异常会被捕捉父类异常的catch捕捉到
5.捕捉任何异常的代码
catch(Exception e) {
System.err.println("Caught an exception");
}
6.异常声明遇到继承关系
1)当覆盖一个函数的时候,子类不能声明抛出比父类版本更多的异常
2)在子类的构造函数中,必须声明父类可能抛出的全部异常