예외 메시지를 적어야하나?

스크린샷 2022-03-17 오후 7.38.02.png

위와 같은 리뷰 혹은 예외메시지를 적지 않아 날라오는 리뷰를 본 경험이 있을 것이다.

예외 메시지는 프로그래머가 얻을 수 있는 유일한 정보인 경우가 많다.

예외를 잡지 못 하고 프로그램이 실패하면 그 예외의 스택 추적(stack trace) 정보를 자동으로 출력한다.

스크린샷 2022-03-17 오후 7.18.58.png

스택 추적은 예외 객체의 toString 메서드를 호출해 얻는 문자열로 클래스 이름 뒤에 상세 메시지가 붙는 형태다.

이 정보는 프로그래머가 얻을 수 있는 유일한 정보인 경우가 많다. 실패를 재현하기 어렵다면 더 자세한 정보를 얻는 경우는 불가능에 가깝다. 메시지에 실패 원인에 대한 정보를 가능한 많이 담아 반환하는 일은 중요하다.

위 스택 트레이스처럼 예외 메시지가 없다면 실패에 대한 원인을 분석하는 작업이 필요하다.

예외 메시지에 매개변수와 필드의 값을 담자.

실패 순간을 포착하려면 발생한 예외에 관여한 모든 매개변수필드의 값을 실패 메시지에 담아야 한다.

메시지가 없는 경우

메시지가 없는 경우

벗어난 인덱스만 알려주는 경우

벗어난 인덱스만 알려주는 경우

최솟값, 최댓값, 인덱스를 모두 알려주는 경우

최솟값, 최댓값, 인덱스를 모두 알려주는 경우

위 정보는 실패에 관한 많은 것을 알려준다.