如何使用批量复制粘贴错误处理代码简化类?

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块中调用原始方法.但是,所有调用都必须通过这种方法.

有任何想法吗?

aio*_*obe 8

以简化所有其他重复代码的方式简化它:将重复的代码放在方法中,并调用方法:

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)