[Spring] exception에 대응하기

김예원·2022년 9월 2일
0

예외처리는 귀찮은 일이지만 프로젝트가 커질수록 오류를 처리하고 다시 개발하기를 반복하는데에 필요한 자원이 아주 커진다.

예외처리는 스스로 고민하고 방어한다고 해서 완벽하게 작성되기 어렵기 때문에 비슷한 서비스의 기능들에서 자주 발생하는 예외를 어느정도 인지하고 잘 정리해두는 것이 좋다.

효율적으로 예외처리 하는 방법💫

  1. Error Response는 객체(혹은 클래스)를 만들어 통일해서 사용한다.

    동일한 로직으로 처리하기 위해 항상 동일하고 명확하게 구성해야한다.

    • Error – 오류에 대한 고유 식별자
    • Message – 개발자가 읽을 수 있는 간단한 메시지
    • Detail – 오류에 대한 자세한 설명
  2. @ControlAdvice를 통해 모든 예외를 한 곳에서 핸들링 한다.

    에러를 처리할 수 있는 공간을 각 컨트롤러 마다 만들게 되는 경우, 유지보수하기가 힘들다.

  3. Error code를 정의하여 처리한다.

    enum타입으로 한곳에서 관리하여, 메세지의 중복을 방지하고 도메인 별로 관리하는 것이 좋다.

  4. 요구사항에 맞지 않는 경우에는 business exception을 만들어 따로 처리한다.

    예외처리의 경우 로직의 책임이 증가하게 된다. 여러 경우에서 예외처리의 책임을 가지게 되는 순간 유지보수하기 어려운 코드가 되어, 코드의 가독성과 객체 본인의 책임을 모두 가져야한다.

  5. try~catch는 지양한다.

    어쩔 수 없이 사용하는 경우 로그를 남기게 해야하며, 단순하게 exception만 발동시키는 것이 아닌, 구체적인 exception 이름을 이용하여 발생시키는 것이 좋다.


profile
기억력이 짧은 나를 위한 기록 🍀

0개의 댓글