(스프링) 컨트롤러 익셉션 처리하기

*익셉션 화면이 보이는 것보다는 알맞게 익셉션을 처리해서 사용자에게 더 적합한 안내를 해 주는 것이 더 좋은 방법이다.
MemberNotFoundException의 경우 try-catch로 잡은 뒤 안내 화면을 보여주는 뷰를 보여주면 될 것이다. 그런데, 타입 변환 실패에 따른 익셉션은 어떻게 해야 에러 화면을 보여줄 수 있을까?
이럴때 유용하게 사용할 수 있는 것이 바로 @ExceptionHandler애노테이션이다.



같은 컨트롤러에 @ExceptionHandler애노테이션을 적용한 메소드가 존재하면, 스프링 MVC는 그 메소드가 익셉션을 처리하도록 한다. 따라서, 컨트롤러에서 발생한 익셉션을 직접 처리하고 싶다면 @ExceptionHandler애노테이션을 적용한 메소드를 구현해주면 된다.



---->@ExceptionHandler의 값으로 TypeMimatchException.class를 주었다. 이 익셉션은 경로 변수값의 타입이 올바르지 않은 경우에 발생하는데, 이 익셉션이 발생하면 에러 응답을 보내지 않고 handleTypeMismatchException()메소드를 실행한다.

비슷하게 detail()메소드를 실행하는 과정에서 MemberNotFoundException이 발생하면 handleNotFoundException()메소드를 이용해서 익셉션을 처리한다.


댓글

이 블로그의 인기 게시물

(18장) WebSocekt과 STOMP를 사용하여 메시징하기

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬