무점검 예외 때문에 프로그램이 죽으면, 시스템은 자동적으로 해당 예외의 스택 추적 정보를 출력한다. 이 정보는 해당 예외 객체의 toString 메서드가 예외 정보를 문자열로 변환한 결과다. 따라서 toString 메서드가 반환하는 문자열에 오류 원인에 관계된 정보를 최대한 많이 담아두는 것이 아주 유용하다.  다시 말해서, 예외의 상세 메세지에는 원인 분석에 이용될 오류 정보가 포착되어 있어야 한다는 것이다.


 오류 정보를 포착해 내기 위해서는, 오류의 상세 메세지에 "예외에 관계된" 모든 인자와 필드의 값을 포함 시켜야 한다. 예를 들어 IndexOutOfBounds Exception의 예외 메세지에는 첨자의 하한과 상한, 그리고 그 범위를 벗어난 첨자값이 포함되어 있어야 한다. 그 정보를 보면 많은 정보를 얻을 수 있기 때문이다. 


 예외의 상세 메세지를 사용자 레벨 오류 메시지와 혼동해서는 안 된다. 사용자 레벨 오류 메시지는 최종 사용자가 이해할 수 있어야 한다. 하지만 예외에  대한 상세 메시지는 프로그래머나 서비스 담당자가 오류 원인을 분석하기 위한 것이다. 따라서 가독성보다는 내용이 훨씬 중요하다.  이런 상세 메시지에 담는 한가지 방법은, 상세한 정보를 요구하는 생성자를 만드는 것이다.



+ Recent posts