Item 63. 어떤 오류인지를 드러내는 정보를 상세한 메시지에 담아라.

오류 정보를 포착해 내기 위해서는, 오류의 상세 메시지에 예외에 관련된 모든 인자와 필드 값 을 포함 시켜야 한다.

/**
 * Construct an IndexOutOfBoundsException.
 * 
 * @param lowerBound the lowest legal index value.
 * @param upperBound the highest legal index value plus one.
 * @param index the actual index value.
 */
public IndexOutOfBoundsException(int lowerBound, int upperBound, int index){
    // 오류를 포착하는 상세 메시지 생성
    super(
            "Lower bound: " + lowerBound +
            ", Upper bound: " + upperBound +
            ", Index: " + index
    );
    // 프로그램에서 사용할 수 있도록 오류 정보 보관
    this.lowerBound = lowerBound;
    this.upperBound = upperBound;
    this.index = index;
}