Time does not change us. It just unfolds us.

Web/Else

[Web]사용자 정의 예외 클래스

소젬 2021. 10. 25. 11:02

앞서 예외처리하는 방법에 대해 공부했다면, 이번에는 그 예외를 정의한 부분에 대해 이해해보고자 한다.

https://x-ojm.tistory.com/25 

 

[Web]@ContollerAdvice, @ExceptionHandler 예외처리

@RestController public class MyRestController { ... @ExceptionHandler(NullPointerException.class) public Object nullex(Exception e) { System.err.println(e.getClass()); return "myService"; } } @Exce..

x-ojm.tistory.com

프로젝트에 사용된 예시로 해당 유저가 존재하지 않을 때 발생하는 예외다.

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

 

[JAVA] 사용자 정의 예외

사용자 정의 예외 규모 있는 어플리케이션을 개발하다 보면 표준 API에서 제공하는 예외 클래스만으로는 표현하기 힘든 예외들이 있습니다. 예를들어 회원가입 기능을 구현하기 위해서는 중복

dololak.tistory.com

 

'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