이번 아이템은 위와 같은 제목을 가지면서 “예외 번역”과 “예외 연쇄”에 대한 설명을 짧게 다루고 있다.

시작


수행하려는 일과 관련 없어 보이는 예외가 튀어나온다?

당황스러움 😱

이는 메서드가 저수준 예외를 처리하지 않고 바깥으로 전파해버릴 때 종종 일어나는 일!

이런 문제를 피하기 위해서 “예외 번역”을 하자

예외 번역


상위 계층에서는 저수준 예외를 잡아 자신의 추상화 수준에 맞는 예외로 바꿔 던져야 한다.

try { 
	...
} catch (LowerLevelException e) { // 저수준 예외를 잡아
	// 자신의 추상화 수준에 맞게 번역
	throw new HigherLevelException(...);
}

실제 AbstractSequentialList 구현 예제