예외의 상세 메시지에 실패 관련 정보를 담으라

김종준·2023년 10월 8일
0

이펙티브자바

목록 보기
62/63

예외의 상세 메시지에 실패 관련 정보를 담으라

예외를 잡지 못해 프로그램이 실패하면 자바 시스템은 그 예외의 스택 추적 정보를 자동으로 출력한다.

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

이 정보가 실패 원인을 분석해야 하는 프로그래머 혹은 SRE가 얻을 수 있는 유일한 정보인 경우가 많다.

더구나 그 실패를 재현하기 어렵다면 더 자세한 정보를 얻기가 불가능하다.

따라서 예외의 toString 메서드에 실패 원인에 관한 정보를 가능한 한 많이 담아 반환하는 일은 아주 중요하다.

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

관련 데이터를 모두 담아야 하지만 장황할 필요는 없다.

문제를 분석하는 사람은 스택 추적뿐 아니라 관련 문서와 소스 코드를 함께 살펴본다.

예외의 상세 메시지와 최종 사용자에게 보여줄 오류 메시지를 혼동해서는 안 된다.

최종 사용자에게는 친절한 안내 메시지를 보여줘야 하지만, 예외 메시지는 가독성보다는 담긴 내용이 훨씬 중요하다.

예외 메시지의 주 소비층은 문제를 분석해야 할 프로그래머와 SRE다.

0개의 댓글