Exception
Exception是程序运行时,可以预料到的异常情况,可能并且应该被捕获进行相应的处理。
可分为可检查异常和不可检查异常,可检查异常必须显示的进行捕获处理;不可检查异常即所谓的运行时的异常,如NullPointerException,ArrayIndexOutOfBoundsException。
Error
Error是指在正常情况下不大可能发生的情况,绝大部分Error都会导致程序处于非正常的或不可恢复的状态。
开发中的基本原则
1、尽量不要捕获类似Exception这样的通用异常,而应该捕获特定的异常;
2、不要生吞异常;下面这段代码捕获了异常,却没有对异常进行处理(抛出异常)或者进行有效的日志记录,本质上是掩盖问题。
try{
//do something
}catch(IOException e){
e.printStackTrace();
}
3、尽量遵循Throw early,catch late的原则;
4、try-catch代码块会产生额外的性能开销,尽量不要一个大的try包住整段代码(这样也不利于排查问题)