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