jil*_*t3d 6 java exception-handling
我在一个具有相同异常处理的类中有一些私有方法.它们的正文代码引发了相同的异常类型,代码处理也是一样的.
private void method1() {
try {
//make_the_world_a_better_place
}
catch(IOException ioe) {
// ...
}
}
private boolean method2(String str) {
try {
//make_a_cheesecake
}
catch(IOException ioe) {
// ...
}
}
哪个是外部化常见异常处理的最佳方法,所以当我对其中一个方法的异常处理代码进行更改时,更改会传播到其他方法?模板方法模式在这种情况下会很方便,但我不想深入到类层次结构中.
编辑:有几个catch子句,不仅仅是示例中的一个.
创建一个界面:
public interface Executor {
void exec() throws Exception;
}
Run Code Online (Sandbox Code Playgroud)
在你班上:
checkForExceptions(new Executor() {
@Override
public exex() throws Exception {
method1();
}
});
private void checkForExceptions(Executor ex) {
try {
ex.exec();
} catch (Exception e) [
/// handling
}
Run Code Online (Sandbox Code Playgroud)
你的直觉是好的 - DRY 是一件好事。但不要这样做。您的代码将更难阅读。
确保您的 catch 块真正处理异常,而不仅仅是吞掉它。如果你的班级没有提供补救措施,我认为最好放弃它并让客户弄清楚该怎么做。
| 归档时间: |
|
| 查看次数: |
3364 次 |
| 最近记录: |