mor*_*ort 5 java exception-handling
在一些旧的Java代码中,我发现了一个包含许多方法的类,这些方法都使用相同的错误处理代码(带有大量错误处理,日志记录等的try-catch).看起来第一种方法被简单地复制了,然后try块中的代码稍微适应了.这是它的基本外观:
public class myClass{
public void doSomething() {
try {
//do something
} catch (Exception e) {
//extensive error handling
}
}
public void doSomethingElse() {
try {
//do something else
} catch (Exception e) {
//extensive error handling, copy-pasted from the above method
}
}
Run Code Online (Sandbox Code Playgroud)
}
怎么可以简化?我不想改变类的接口(很多),我只想摆脱复制粘贴的catch块,这样只有try块中的代码才能保留在原始方法中.
我想过使用Factory Method模式,其中一个方法实现错误处理并在try块中调用原始方法.但是,所有调用都必须通过这种方法.
有任何想法吗?
以简化所有其他重复代码的方式简化它:将重复的代码放在方法中,并调用方法:
public void doSomething() {
try {
//do something
} catch (Exception e) {
handleError(e);
}
}
public void doSomethingElse() {
try {
//do something else
} catch (Exception e) {
handleError(e);
}
}
private void handleError(Exception e) {
//extensive error handling
}
Run Code Online (Sandbox Code Playgroud)