我有一个遗留类 C1,实现接口 I,可能会引发一些异常。
我想创建一个类 C2,也实现接口 I,它基于 C1 的实例,但捕获所有异常并对它们做一些有用的事情。
目前我的实现如下所示:
class C2 implements I {
C1 base;
@Override void func1() {
try {
base.func1();
} catch (Exception e) {
doSomething(e);
}
}
@Override void func2() {
try {
base.func2();
} catch (Exception e) {
doSomething(e);
}
}
...
}
(注意:我也可以让 C2 扩展 C1。这对当前问题无关紧要)。
该接口包含许多功能,所以我不得不一次又一次地编写相同的 try...catch 块。
有没有办法减少这里的代码重复量?