@RestController public class MyRestController {
...
@ExceptionHandler(NullPointerException.class)
public Object nullex(Exception e) {
System.err.println(e.getClass());
return "myService";
}
}
@ExceptionHandler같은 경우는 @Controller, @RestController가 적용된 Bean내에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해주는 기능을 한다. 즉, 메소드 위에 선언되며, 등록한 예외를 Catch하여 처리할 수 있다.
위 예제와 같이 @ExceptionHandler라는 어노테이션을 쓰고 인자로 캐치하고 싶은 예외클래스를 등록하여 사용한다.
주의사항/알아 둘 것
|
@ExceptionHandler가 하나의 클래스에 대한 것이라면, @ControllerAdvice는 모든 @Controller에서 발생할 수 있는 예외를 잡아 처리해주는 annotation이다. 즉 예외를 한 곳에서 관리하게 도와준다.
새로운 클래스파일을 만들어서 annotation을 붙이기만 하면 된다. 그 다음에 @ExceptionHandler로 처리하고 싶은 예외를 잡아 처리하면 된다.
@RestControllerAdvice
public class MyAdvice {
@ExceptionHandler(CustomException.class)
public String custom() {
return "hello custom";
}
}
참고 블로그
https://jeong-pro.tistory.com/195
'Web > Else' 카테고리의 다른 글
[Web]Url 주소 가져오기 (0) | 2021.10.25 |
---|---|
[Web]사용자 정의 예외 클래스 (0) | 2021.10.25 |
[Web]WAS (0) | 2021.10.22 |
[Web]RESTful (0) | 2021.10.22 |
[Web]MSA (0) | 2021.10.22 |