요약
•
실패에 대한 원인을 분석하기 위해, 예외 메세지에 최대한 많은 실패 관련 정보를 담자.
예외 메세지에 실패 정보 담기
•
자바 시스템은 예외가 발생하면 예외의 스택 추적(stack trace) 정보를 자동으로 출력한다.
•
스택 추적은 예외 객체의 toString 메서드를 호출해 얻는데, 일반적으로 예외 클래스 이름 뒤에 상세 메세지가 붙는 형태이다.
•
이런 스택 추적은 실패의 원인을 분석하는 유일한 정보인 경우가 많고, 특히 해당 실패 상황을 재현하기 어려운 경우라면 실패 원인에 대한 정보를 가능한 많이 담아 반환해야한다.
•
이를 위해 실패가 발생할 때, 발생한 예외에 관여된 모든 매개변수와 필드 값을 실패 메세지에 담아야 한다.
•
예를 들면, IndexOutOfBoundsException이라면 범위의 최대, 최소값, 범위를 벗어난 인덱스 값을 담아야한다.
•
스택 추적에는 예외가 발생한 파일 이름과 줄번호까지 기록되어있기 때문에, 문서나 소스코드를 통해 얻을 수 있는 정보들은 예외 메세지에 담아 장황하게 늘어놓게 만들지 말자.
•
또한 예외는 실패와 관련된 정보를 얻을 수 있는 접근자 메서드를 제공하는 것이 좋다.