异常
快捷键 Ctrl+alt+t 可以选择,自动包裹起来
举个栗子
// 假设要捕获多个异常,从小到大
try {
//try 监控区域
System.out.println(a/b);
}catch (Error e){//catch 捕获异常 想要捕获的异常类型(Throwable 最高)
System.out.println("Error");
}
catch (Exception e){
System.out.println("Exception");
}catch (Throwable t){
System.out.println("Throwable");
} finally {//处理善后工作
System.out.println("finally");
}
//finally可以不要 ,假设IO 资源关闭放在finally里面
结果是:Exception
finally
关于throw 和throws
throw是写在方法体中主动抛出异常,throws是写在方法上
public void test(int a,int b) throws ArithmeticException{
if (b==0){
//主动抛出异常
throw new ArithmeticException();
}
}
寻找东西 双击shift
实际应用中的经验总结
- 处理运行时异常时,采用逻辑去合理的规避同时辅助 try-catch处理
- 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
- 对于不确定的代码,切记只是简单地调用printStackTrace()去打印输出
- 具体如何处理异常,要根据不同业务需求和异常类型去决定
- 尽量添加finally语句块去释放占用资源