인프런 커뮤니티 질문&답변

코찔질이님의 프로필 이미지
코찔질이

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

어떨때는 validation을 쓰고, 어떨때는 @exceptionHandler을 써야하나요?

해결된 질문

작성

·

285

0

둘 다 원하지 않는 상황이 발생했을 때, 처리할 수 있는 방식인 거 같은데요.

제 생각엔 validation(@NotNull 같은...)으로 처리하는 많은 일을 @exceptionHandler을 통해서도 가능하다고 생각하는데요.

그래서 굳이 validation이 필요한 지, 언제 무엇을 사용해야 할지 헷갈려요

예를 들어 웹페이지에서 첨부파일을 받을 때 MultipartFile에서 받을 크기를 넘어서게 되면 SizeLimitExccededException이 발생하잖아요. 여기서 처리 방식이 dto에서 validation을 설정해 주고, bindingResult로 처리해 주는 것과, @exceptionHandler 통해서도 처리를 해줄 수 있다고 보는데요.

주로 어느 상황에는 ~을 쓰고, 어떤 상황에는 ~을 쓰는 게 존재하나요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

일반적으로 validation은 요청에 대한 검증이나 처리 이전에 데이터 검증을 위해 사용됩니다. 이는 단순히 입력 값이 null인지 혹은 범위 내에 있는지를 검사하는 등의 작업이 포함되며, 예기치 않은 입력 값을 차단할 수 있습니다.

반면, @ExceptionHandler은 예외가 발생할 경우 예외 처리 방식을 명시하기 위해 사용됩니다. 예외가 발생했을 때, 사용자에게 보여 주어야 할 메시지를 지정하는 것입니다.

때로는 예외 처리는 validation보다 필요한 경우가 있고, 때로는 그 반대일 수도 있습니다. 예를 들어, 파일 업로드에 대한 경우 기본적으로 용량이 너무 큰 파일이 업로드 되었는지 생각해야 할 뿐만 아니라, 예상치 못한 오류나 예외가 발생할 경우를 대비하여 @exceptionHandler을 사용하여 처리할 수 있습니다.

결론적으로, validation은 요청 파라미터를 받는 경우, @ExceptionHandler은 예외 처리와 관련된 것으로 생각하시면 됩니다. 그러나 둘 다 서로 다른 목적으로 사용되므로, 필요에 따라서 골라서 사용하시면 됩니다.

코찔질이님의 프로필 이미지
코찔질이

작성한 질문수

질문하기