Java异常处理
Java把异常当作对象来处理,基于java.lang.Throwable作为超类
分为 Error 和Exception, exception有runtime和非runtime异常。
1. 异常处理机制
抛出异常---捕获异常
快捷 键:直接包裹代码块 Ctrl + Alt + T
关键字: try, catch, finally, throw, throws
try{
//监控的代码块
}catch(XXXException e){//想要捕获的异常类型
//捕获异常后的操作
}finally{
//处理善后工作
}
catch可以写多个,把权限最大的异常写到最后,
//catch 处理:
catch(Exception e){
System.exit(1);//程序结束
e.printStackTrace();//打印错误栈信息
}
主动抛出异常(throw和throws的区别,一个在方法中,一个在方法声明中使用
//直接抛出异常,没法处理
if (b ==0){
throw new ArithmeicException();//throw,然后new一个异常
}
//向上给方法,方法抛出异常,在调用方法时进行try catch 包装处理。
public void test(int a, int b) throws ArithmeticException{
if (b ==0){
throw new ArithmeicException();//throw,然后new一个异常
}
}
2. 自定义异常
public class MyException extends Exception{
private int detail;
public MyException(int detail) {
this.detail = detail;
}
@Override
public String toString() {
return "MyException{" +
"detail=" + detail +
'}';
}
}
//后面调用时
catch(MyException e){
System.out.println(e)//e就是自己写的toString方法里的东西
}