강의

멘토링

로드맵

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

sangmin8276님의 프로필 이미지
sangmin8276

작성한 질문수

BindingResult 부분에서 질문있습니다.

해결된 질문

작성

·

28

0

image.png

강의: 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 검증1 Validation - 오류 코드와 메시지 처리6

가격에 문자열 "qqq" 를 입력하면

 

image.png

500 에러가 뜹니다.

image.png

이게 179에 있는 코드있입니다. getPrice() 메서드에서 오류가 나는 것 같은데 왜 그런 걸까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

sangmin8276님, 가격에 문자열이 입력되면서 NullPointerException이 발생하는 문제는 getPrice() 메서드의 반환값이 null이라서 발생합니다. hello.itemservice.domain.item.Item.getPrice() 메서드가 null을 반환할 경우, 이를 intValue()로 변환하려고 시도하면서 오류가 발생합니다.

해결 방법은 두 가지가 있을 수 있습니다:

  1. getPrice() 메서드가 null을 반환하지 않도록 기본 값을 설정합니다. 예를 들어, 기본 가격을 0으로 설정할 수 있습니다.

  2. getPrice() 메서드의 결과가 null인지 확인 후 처리를 진행하거나, 적절한 예외 처리를 추가하는 것입니다. Optional을 사용할 수도 있으며, Integer로 받아 null인지 검사한 뒤 이를 처리하는 로직을 추가할 수 있습니다.

서버 에러를 확인하기 위해서는 /error 매핑을 따로 설정하여 에러 페이지를 커스터마이징할 수도 있습니다. 만약 기본 오류 처리를 변경하고 싶다면 Spring Boot의 ErrorController를 구현하거나 ErrorAttributes를 사용해 내용을 대체해보세요.

추가적인 도움이 필요하시다면 알려주세요.

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#web.servlet.spring-mvc.message-codes
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#web.servlet.spring-mvc.error-handling

sangmin8276님의 프로필 이미지
sangmin8276

작성한 질문수

질문하기