소개

4장 예외

날짜
2022/03/19

예외처리 방법

예외 복구

예외 상황을 파악하고 문제를 해결해서 정상 상태로 돌려놓는 방법

예외 회피

자신이 예외처리를 담당하지 않고 자신을 호출한 쪽으로 던져버리는 방법

예외 전환

예외를 복구해서 정상 상태로 만들 수 없을 때 예외를 메소드 밖으로 던지는 것이다. 하지만 예외 회피와 달리, 발생한 예외를 그대로 넘기는 것이 아니라 적절한 예외로 전환해서 던진다
내부에서 발생한 예외를 그대로 던지는 것이 그 예외 상황에 대한 적절한 의미를 부여해주지 못하는 경우에 의미를 분명하게 해줄 수 있는 예외로 바꿔주기 위해서이다. API가 발생하는 기술적인 로우레벨을 상황에 적합한 의미를 가진 예외로 변경하는 것이다.
예외 전환시에는 원래 발생한 예외를 담아서 중첩 예외로 만드는 것이 좋다.
중첩 예외는 새로운 예외를 만들면서 생성자나 initCause() 메소드로 근본 원인이 되는 예외를 넣어주면 된다
예외를 처리하기 쉽고 단순하게 만들기 위해 포장할 때 사용하기도 한다. 주로 예외처리를 강제하는 체크 예외를 언체크 예외인 런타임 예외로 바꾸는 경우 사용한다