Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 1.15 KB

75_예외의_상세메세지에_실패관련정보를_담아라.md

File metadata and controls

32 lines (27 loc) · 1.15 KB

아이템 75. 예외의 상세 메시지에 실패 관련 정보를 담으라

  • 발생한 예외에 관여된 모든 매개변수와 필드의 값을 실패 메시지에 담아야 무엇을 고쳐야할지 분석하는데 큰 도움이 된다.
public class IndexOutOfBoundsException extends RuntimeException {
    private final int lowerBound;
    private final int upperBound;
    private final int index;

    /**
     * IndexOutOfBoundsException을 생성한다.
     *
     * @param lowerBound 인덱스의 최솟값
     * @param upperBound 인덱스의 최댓값 + 1
     * @param index      인덱스의 실젯값
     */
    public IndexOutOfBoundsException(int lowerBound, int upperBound,
                                     int index) {
        // 실패를 포착하는 상세 메시지를 생성한다.
        super(String.format(
                "최솟값: %d, 최댓값: %d, 인덱스: %d",
                lowerBound, upperBound, index));

        // 프로그램에서 이용할 수 있도록 실패 정보를 저장해둔다.
        this.lowerBound = lowerBound;
        this.upperBound = upperBound;
        this.index = index;
    }
}