inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

해결된 질문

340

코찔질이

작성한 질문수 13

0

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

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

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

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

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

spring mvc

답변 1

0

인프런 AI 인턴

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

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

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

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

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

이미지 업로드와 db 트랜잭션 묶는법

0

43

1

Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4

0

53

2

MessageSourceTest 코드

0

47

1

인터셉터 에러 설정

0

48

1

resolveArgument()메서드 질문

0

57

1

43강 검증1 에서 실패 로직 관련 질문있습니다.

0

56

2

타임리프 3.X 버전 rendering, serializer 에러 해결 방법

2

133

3

스프링 빈에 등록이 안되는거 같은데 어떻게 하면 좋을까요?ㅠㅠ

0

90

3

pdf 오타 문의

0

57

1

ItemUpdateForm 검증 관련 질문입니다.

0

48

1

22page 링크 주소 변경

0

59

2

특정 데이터와 파일을 함께 저장 시, 테이블 구조 질문

0

53

1

섹션3번 수업에 대한 질문입니다.

0

80

2

@Autowired 보다 더 좋은 방법이 어떤 걸까요?

0

85

2

타입컨버터 가 람다랑 비슷해 보이는데 저의 생각이 맞는지?.

0

65

1

자바스크립트 인라인에서 객체 직렬화 시 오류가 납니다

0

142

3

스프링부트 - 오류페이지2 에서 500.html 에서 쓰인 객체 질문

0

63

1

톰캣 에러 페이지가 안보입니다.

0

102

2

apiEceptionController에서 센드 에러 호출하면 안되는지?

0

81

1

세션 타임아웃시 쿠키 삭제 방법이 없나요?

0

118

2

ApiExceptionController 질문드립니다.

0

64

1

셀렉박스 챕터에서 option value에 ==배송 방식 선택== 이것을 넣은 이유가 궁금함, 이렇게 구상해도 되는지?

0

66

1

MemberRepository 필드의 fianl 선언 유무

0

85

2

혹시 index.html 에서는 fragment 사용이 안되는건가요

0

58

1