- 异常转译:更高层的实现应该捕获低层的异常,同时抛出可以按照高层抽象进行解释的异常
使用异常链来让高层抽象包含低层的异常,便于以后排除问题。
try {
...
} catch(LowerLevelException e) {
throw new HigherLevelException(message , e);
}
- 可以在给低层传递参数之前,检查更高层方法的参数的有效性,从而避免低层方法抛出异常。
- 如果无法避免低层异常,可以让更高层来悄悄地绕开这些异常,从而将高层方法的调用者与低层的问题隔离开来。使用适当地记录机制来将异常记录下来。
- 除非低层方法碰巧可以保证它抛出的所有异常对高层也合适才可以将异常从低层传播到高层。