스프링에서의 예외처리
스프링에서는 @ControllerAdvice와 @ExceptionHandler 어노테이션을 이용해서 컨트롤러의 메서드 수행 중 발생하는 예외를 일괄적으로 처리할 수 있다.
먼저, presentation-layer.xml 파일에 예외 처리 관련 어노테이션 사용을 위한 설정(Namespace)을 추가한다.
스프링 설정 파일에 mvc 네임스페이스를 추가하고, 아래와 같이 앨리먼트를 설정해야 한다.
<mvc:annotation-driven></mvc:annotation-driven>
이는 예외 처리 클래스에서 예외 처리 메서드 위에 @ExceptionHandler 어노테이션을 사용했을 때 인식시키기 위한 작업이다.
예외 처리 클래스 작성
예외의 종류에 따라서 적절한 예외 화면이 서비스되도록 예외 처리 클래스를 작성해보자.
먼저 클래스 위에 선언된 @ControllerAdvice({패키지 경로}) 어노테이션에 의해 CommonExceptionHandler 객체는 자동으로 생성된다. 패키지 경로에 있는 컨트롤러에서 예외가 발생하는 순간 @ExceptionHandler 어노테이션으로 지정한 메서드가 실행된다.
이때, 어떤 예외가 발생했느냐에 따라 다른 메서드가 수행된다.
setViewname() 메서드로 지정한 jsp 파일을 작성해주면 완료된다.
<!-- 생략.. -->
<table width="100%" border="1" cellpadding="0" cellspacing="0" align="center">
<tr>
<td align="center">
<br><br><br><br><br><br>
Message: ${exception.message}
<br><br><br><br><br><br>
</td>
</tr>
</table>
<!-- 생략.. -->
'Spring' 카테고리의 다른 글
[Spring] JPA를 활용한 API 생성 (0) | 2023.05.03 |
---|---|
[Spring] JSON 형식의 데이터로 변환하기 (0) | 2023.04.30 |
[Spring] 두 개의 레이어로 나눈 2-Layered 아키텍처 (0) | 2023.04.29 |
[Spring] Controlle가 직접 DAO 객체의 메서드를 호출하면 안되는 몇가지 이유에 대해서 (0) | 2023.04.29 |
[Spring] AOP(Aspect Oriented Programming)에 대해서 (0) | 2023.04.11 |