표준 exception 과 custom exception 중 무엇이 더 좋을까?

wally·2022년 6월 20일
0

생각해보기

목록 보기
4/11

개발을 진행하면서 exception 을 얼만큼 통일해야 할까라는 주제로 의논을 하였다. 이미 자바 표준 exception 이 있으며 custom exception 을 사용할 이유가 있을까가 의논의 논점이었다.

표준 exception 의 장점

  1. 예외 메시지로도 충분히 의미를 전달할 수 있다. - 메시지만 예외사항에 맞게 재정의해준다면 충분히 그 의미를 파악할 수 있다
  2. 표준예외는 기본적으로 항목이 정해져 있다. 따라서 개발자들은 코드 수정이나 다시 코드를 들여다 볼때 훨씬 쉽게 예외를 이해할 수 있다.

custom exception 의 장점

  1. 이름만으로 정보 제공이 가능하며 추가적인 코드 작성을 통해 상세한 예외 설명이 가능하다
  2. ControllerAdvice 를 통해 custom 예외 발생 시 예외 처리가 굉장히 자유롭다
  3. stack trace는 예외 발생 시 call stack에 있는 메소드 리스트를 저장한다. 하지만 try catch 나 advice 사용 시 저장한 메소드 리스트를 사용하지 않으므로 custom 을 통해 과정을 생략하여 생성 비용을 절감할 수 있다.

이펙티브 자바

실제로 이펙티브 자바 item 72 에서도 표준예외 사용을 권장한다.

  • 여러분의 API 가 다른 사람이 익히고 사용하기 쉬워진다.
    • 많은 프로그래머들이 익숙해진 규약을 그대로 따르기 때문
  • 예외 클래스 수가 적을수록 메모리 사용량도 줄고 클래스를 적재하는 시간도 적게 걸린다.

정리

기본적인 규약은 표준 예외를 사용하는 것이 좋을 거 같다. 하지만 advice 를 통한 예외 처리나 중요한 예외처리로 따로 네이밍을 하고 싶은 경우는 custome 을 사용하는 것도 좋을 거 같다. 결론은 표준 예외를 사용하되 팀원들과 협의를 통해 필요한 부분에 custom 을 사용하자!

profile
클린코드 지향

0개의 댓글