✅ @ExceptionHandler가 여러 개인 이유

졸용·2025년 4월 2일

클라이언트와 상호작용하는 컨트롤러에서 예외 상황이 발생했을 때 에러 처리 할 녀석 따로 필요,

데이터베이스와 상호작용하는 레포지토리에서 예외 상황이 발생했을 때 에러 처리 할 녀석 따로 필요,

비즈니스로직을 구현하는 서비스에서 예외 상황 발생했을 때 에러 처리 할 녀석이 또 따로 필요.

➡️ 이렇게 따로 따로 다 처리해줄 녀석들이 필요한 이유는 이렇게 해주지 않으면 어디서 어떤 에러가 나도 스프링이 기본으로 제공하는 에러로 표시될 수 있다.

➡️ 그 말은 즉, 이렇게 따로 처리하도록 해놔야 에러 상황이 발생했을 때, 에러 코드나 에러 메시지만 보고도 어디서 어떤 에러가 발생했는지 알 수 있다.


  • 따로 처리 안 하고 @ExceptionHandler 하나만 있을 때 예시
  1. 에러가 발생했다.

  2. 클라이언트가 받는 에러 메시지

    → "서버 에러가 발생했습니다"

    → 서버 에러? 내 잘못은 아니구나? 그럼 뭐가 문제지?


  • 따로 처리 했을 때 예시
  1. 에러가 발생했다.

  2. 클라이언트가 받는 에러 메시지

    → "이미 가입되어 있는 이메일 입니다. 새로운 이메일로 가입해주세요"

    → 아 이 이메일로 내가 이미 가입했었구나? 다른 이메일로 새로 가입해야겠다.


➡️ ❗여러 예외 상황에 꼼꼼하게 예외처리를 해줄 수록 어떤 점이 문제인지, 어떻게 해결할 수 있는지 알 수 있기 때문에 꼼꼼하게 예외 처리할 수록 좋은 협업 파트너가 될 수 있다❗



✅ 올바른 활용 방법

✅ @RestController & @RestControllerAdvice & @ExceptionHandler 활용법

profile
꾸준한 공부만이 답이다

0개의 댓글