6
인터페이스 I를 구현하는 레거시 클래스 C1이 있는데 예외가 발생할 수 있습니다.클래스의 예외 안전 래퍼 만들기
클래스 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 블록을 반복해서 써야합니다.
여기에 코드 복제량을 줄이는 방법이 있습니까?
당신이 싶은 방법은 "포장"일반 될 수있는 인터페이스에서 순수하게 또는 추가 사람이 있습니까? 샘플의 일부 패키지 보이는 메서드를 재정의하므로 명확하지 않기 때문입니다. –
C2 용 일반 Java 소스를 원한다면 원하지 않습니다. –
@Java Mentor 어떤 차이가 있습니까? –