1.如何使用受检的异常?
如果一个方法抛出了一个或者多个异常,那么调用该方法的代码就必须在一个或者多个catch块中处理这些异常,或者方法上抛出这些异常,并让他们传播出去,无论是哪种方法,都给程序员带来了负担。
2.如何避免使用受检的异常?
异常的设计原则是在不正常的的情况下处理,如果可以把不正常的情况改变为正常思路下的部分,那么可以减少异常处理.不正常是特例,正常才是主流。
把”受检异常变成未受检异常”的方法是,把抛出异常的方法分解为两个方法,一个方法返回boolean,表示是否应该抛出异常.案例如下:
try {
obj.action(args);
} catch (TheCheckedException e) {
....
}
重构成:
if (obj.actionPermitted(args)) {
obj.action(args);
} else {
//...
}
例如我们经常使用的打开文件的操作,用普通的判断语句(重构方法)可以判断是否存在文件,只需要在不存在文件的情况下提醒用户就可以了,所以不必要抛出FileNotExistException。