SimpleMappingExceptionResolver는 HandlerExceptionResolver의 구현체로서 예외가 발생하였을때
그 종류에 따라 에러 페이지를 표시한다던지, 혹은 다른 Controller를 호출하여 후속 작업을
가능하도록 하게 하여 준다. 단, view layer에서 발생하는 예외는 이름 그대로 HandlerException
Resolver이기 때문에 처리 할 수 없다.

<bean
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="EXCEPTION 종류 class">view/error</prop>
</props>
</property>
</bean>

만약, 해당 에러 페이지로 이동하기 전 log를 남기고 싶다면 warnLogCategory property를 이용하여
남길 수 있다. 

<property name="warnLogCategory" value="abcd"/>



또 다른 방법으로는,
@Controller 가 명시된 Controller에서 @ExceptionHandler(Exception.class)을 표시한 메서드를 구현하면
실질적으로 그 컨트롤러 안에 예외가 발생하였을 경우 해당 메서드가 실행되게 된다.

    @ExceptionHandler(Exception.class)
    public void testException(Exception ex) {
        // ...
    }
    
뿐만 아니라 @ResponseStatus 태그도 같이 사용할 수 있어 Response Status Code를 전달할 수도 있다.

    @ExceptionHandler(Exception.class)
    @ResponseStatus(value=HttpStatus.NOT_FOUND)
    public void testException(Exception ex) {
        // ...

'09.Framework' 카테고리의 다른 글

JUnit4 테스트 Datasource Rollback  (0) 2011.12.06
Spring Framework / ReloadableResourceBundleMessageSource  (0) 2011.08.16
Spring MVC SimpleMappingExceptionResolver  (0) 2011.08.16
Spring 3.0 에서 Quartz 설정  (0) 2011.08.09
iBatis 동적 SQL 작성  (0) 2009.10.25
WebWork in Action  (0) 2009.10.07
Posted by Stewie
TAG