다른 예외로 중첩 된 예외를 catch하고 싶습니다.다른 예외로 중첩 된 예외 catch
} catch (RemoteAccessException e) {
if (e != null && e.getCause() != null && e.getCause().getCause() != null) {
MyException etrp = (MyException) e.getCause().getCause();
...
} else {
throw new IllegalStateException("Error at calling service 'service'");
}
}
이보다 효율적이고 우아한 할 수있는 방법이 있나요 : 나는 현재이 방법을하고 있어요?
세 번째 이유는 (IOException처럼) 던져 질 수있는 예외 유형의보다 일반적인 수퍼 클래스를 던짐으로써 해결할 수 있습니다. 이것은 유사하고 그룹화 될 수있는 많은 예외 유형 인 경우에만 해당됩니다. – Marc
@ 마르크 - 어떤 경우에만 "작동"합니다. 예외의 공통 상위 유형이 '예외'인 경우 *를 선언하면 정말 나쁜 생각입니다. 게다가 코드 독독성과 개별 예외를 선언 할 유지 가능성의 관점에서 볼 때 * 자주 * 더 좋습니다. 또는 적어도, 요점까지. 어느 쪽이든 포장은 케이스 # 3 "문제"를위한 게으른 해결책이다. –