Spring Boot – @Valid 관련 Exception

By | 2023년 2월 19일
Table of Contents

Spring Boot – @Valid 관련 Exception

BindException 과 HttpMessageNotReadableException, MethodArgumentNotValidException 이 언제 발생하는지 정리합니다.

@RequestBody

json 으로 값을 받을 때 발생합니다.

@RestController
@RequiredArgsConstructor
@RequestMapping("/v1/login")
public class LoginController {
    @PostMapping("/")
    public ResponseEntity<?> login(@Valid @RequestBody LoginRequestDto dto) {
        return service.login(dto);
    }
}

HttpMessageNotReadableException

Json 형식에 오류가 있는 경우 발생합니다.

MethodArgumentNotValidException

Json 파싱은 제대로 이루어진 후 @Valid 단계에서 오류가 있는 경우 발생합니다.

BindException

@ModelAttribute 로 값을 받을 때 오류가 발생하면 BindException 이 발생합니다.
<form /> 으로 값을 받을 때 발생합니다.

@Controller
@RequiredArgsConstructor
public class LoginController {
    @PostMapping("/login/doLogin")
    public String login(HttpServletResponse response, @Valid LoginRequestDto loginRequestDto) throws IOException {
        LoginResponseDto loginResponseDto = service.login(loginRequestDto);
        setCookies(response, loginResponseDto);
        gotoIndexPage(response, loginResponseDto);
        return null;
    }
}

답글 남기기