이번 아이템은 위와 같은 제목을 가지면서 “예외 번역”과 “예외 연쇄”에 대한 설명을 짧게 다루고 있다.
수행하려는 일과 관련 없어 보이는 예외가 튀어나온다?
당황스러움 😱
이는 메서드가 저수준 예외를 처리하지 않고 바깥으로 전파해버릴 때 종종 일어나는 일!
이런 문제를 피하기 위해서 “예외 번역”을 하자
상위 계층에서는 저수준 예외를 잡아 자신의 추상화 수준에 맞는 예외로 바꿔 던져야 한다.
try {
...
} catch (LowerLevelException e) { // 저수준 예외를 잡아
// 자신의 추상화 수준에 맞게 번역
throw new HigherLevelException(...);
}
실제 AbstractSequentialList
구현 예제