앞서 예외처리하는 방법에 대해 공부했다면, 이번에는 그 예외를 정의한 부분에 대해 이해해보고자 한다.
프로젝트에 사용된 예시로 해당 유저가 존재하지 않을 때 발생하는 예외다.
ExceptionAdvice.java
@Slf4j
@ControllerAdvice
public class ExceptionAdvice extends ResponseEntityExceptionHandler {
@ExceptionHandler(UserNotFoundException.class)
public ResponseEntity<Object> userNotFound(HttpServletResponse response, UserNotFoundException ex, WebRequest request) {
return handleExceptionInternal(ex, StringUtils.EMPTY, new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request);
}
}
UserNotFoundException.java
package com.poscoict.posmaster.exception;
public class UserNotFoundException extends RuntimeException {
private static final long serialVersionUID = -7907137683274068542L;
public UserNotFoundException(String message) {
super(message);
}
}
사용자 정의 예외 클래스는 보통의 경우 Exception 또는 RuntimeException을 상속 받아 정의한다.
예외를 강제 하고 싶은 경우 Exception을 상속받으면 되고 느슨하게 정보만 제공하고 싶은 경우 RuntimeException을 상속하면 된다고 하는데 무슨말인지 와닿지 않는다;
참고 링크에 설명과 예시가 잘 나와있다.
참고
https://dololak.tistory.com/88
'Web > Else' 카테고리의 다른 글
[Web]multipart/form-data (0) | 2021.10.28 |
---|---|
[Web]Url 주소 가져오기 (0) | 2021.10.25 |
[Web]@ContollerAdvice, @ExceptionHandler 예외처리 (0) | 2021.10.22 |
[Web]WAS (0) | 2021.10.22 |
[Web]RESTful (0) | 2021.10.22 |