Java异常
异常父类 : Throwable;
异常的捕获:
try{
//有可能是有异常的指令
}catch(Exception e){
//处理异常
}finally{
//最后做的事情
}
finally可以省略,针对一段代码指令中如果有可能有多个异常,那么可以多加几个catch
try{
//有可能是有异常的指令
}catch(异常1 e){
//处理异常
}catch(异常2 e){
//处理异常
}
...
finally{
//最后做的事情
}
多个catch的情况下,catch后面的异常依从从小到大(孙子到儿子到自己)
异常的声明
可以在方法名后面(参数列表括号后,方法体之前)用throws语句声明有可能抛出的异常
public void test(...) throws E1,E2,E3,...{
}
public int div(int a, int b) throws ArithmeticException{
int c = a / b;
return c;
}
public void test(...) throws E1,E2,E3,...{
}
public int div(int a, int b) throws ArithmeticException{
int c = a / b;
return c;
}
注意:在继承关系中子类抛出的异常只能比父类抛出的异常小或者跟父类一样
public class A {
public void test() throws RuntimeException{
}
}
public class B extends A{
@Override
public void test() throws NullPointerException {
super.test();
}
}
异常的抛出
也可以在可能出现异常的代码指令中,使用throw语句,抛出一个具体的异常
if (b == 0) {
throw new ArithmeticException("被除数为0");
}
以上Exception 、ArithmeticException、RuntimeException、NullPointerException 皆是问题的名称。