아이템 75. 예외의 상세 메세지에 실패 관련 정보를 담으라
예외를 잡지 못해 프로그램이 실패하면 자바 시스템은 그 예외의 스택 추적(stack trace) 정보를 자동으로 출력한다. 스택 추적은 예외 객체의 toString 메서드를 호출해 얻는 문자열로, 보통은 예외의 클래스 이름 뒤에 상세 메세지가 붙는 형태다.
실패 순간을 포착하려면 발생한 예외에 관여된 모든 매개변수와 필드의 값을 실패 메세지에 담아야 한다. 관련 데이터를 모두 담아야 하지만 장황할 필요는 없다. 예외의 상세 메시지와 최종 사용자에게 보여줄 오류 메세지를 혼동해서는 안된다. 최종 사용자에게는 친절한 안내 메세지를 보여줘야 하는 반면, 예외 메세지는 가독성보다는 담긴 내용이 훨씬 중요하다.
실패를 적절히 포착하려면 필요한 정보를 예외 생성자에서 모두 받아서 상세 메세지까지 미리 생성해 놓는 방법도 괜찮다.