【发布时间】:2017-10-17 06:45:42
【问题描述】:
我有一个包装对象的类:
public class MyWrapper implements MyInterface {
private MyInterface wrappedObj;
public MyWrapper(MyInterface obj) {
this.wrappedObj = obj;
}
@Override
public String ping(String s) {
return wrappedObj.ping(s);
}
@Override
public String doSomething(int i, String s) {
return wrappedObj.doSomething(i, s);
}
// many more methods ...
}
现在我想在 WrappedObj 调用周围添加复杂的异常处理。
所有方法都一样。
如何避免一遍又一遍地重复相同的异常处理代码?
【问题讨论】:
-
我认为我们需要了解“复杂”的含义。通常我只是把重复的部分放在一个通用的方法中,然后在需要的地方调用。
-
定义
private void handle(MyException exception)并从每个catch块中调用它? -
使用 lambda?即
Object doWithExceptionHandling(Callable callable) -
一个相关的C++问题:stackoverflow.com/questions/10140383/…
标签: java lambda exception-handling code-reuse