해결된 질문
작성
·
28
0
강의: 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 검증1 Validation - 오류 코드와 메시지 처리6
가격에 문자열 "qqq" 를 입력하면
500 에러가 뜹니다.
이게 179에 있는 코드있입니다. getPrice() 메서드에서 오류가 나는 것 같은데 왜 그런 걸까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
sangmin8276님, 가격에 문자열이 입력되면서 NullPointerException
이 발생하는 문제는 getPrice()
메서드의 반환값이 null
이라서 발생합니다. hello.itemservice.domain.item.Item.getPrice()
메서드가 null
을 반환할 경우, 이를 intValue()
로 변환하려고 시도하면서 오류가 발생합니다.
해결 방법은 두 가지가 있을 수 있습니다:
getPrice()
메서드가 null
을 반환하지 않도록 기본 값을 설정합니다. 예를 들어, 기본 가격을 0으로 설정할 수 있습니다.
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