예외를 잡지 못해 프로그램이 실패하면 자바 시스템은 스택 추적 정보를 자동으로 출력한다. 스택 추적은 예외 객체의 toString 메서드를 호출해 얻는 문자열이다.
예외의 toString 메서드에 실패 원인에 관한 정보를 가능한 한 많이 담아 반환하는 일은 아주 중요하다.
실패의 순간을 포착하려면 발생한 예외에 관여된 모든 매개변수와 필드의 값을 메세지에 담ㅇ야 한다. 예컨대 IndexOutOfBoundsException의 상세 메세지는 범위의 최소, 최대, 그리고 그 범위를 벗어난 인덱스 값을 모두 담아야 한다. 그래야 이 메세지를 보고 무엇을 고쳐야 할지를 분석하는 데 도움이 된다.
예외의 상세 메세지와 최종 사용자에게 보여줄 오류 메세지를 혼동해서는 안된다. 최종 사용자는 친절한 안내메세지를 받아야 하는 한편, 예외 메세지는 가독성보다는 담긴 내용이 훨신 중요하다. 이를 적절히 구분하여 오류 메세지를 만들자