Spring 의 exception 처리 전략

Spring 에서 Exception 을 처리하기위해서는 두가지 방법이 있다.

첫번째는 아래와같이 SimpleMappingExceptionResolver 클래스를 사용하는 방법이다.

- springapp-servlet.xml

    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
     <property name="exceptionMappings">
      <props>
       <prop key="java.lang.Exception">error</prop>
      </props>
     </property>
    </bean>

여기서 쓰인 error 는 viewResolver 에 의해 파싱되어서 가게 된다.

두번째 방법으로는 아래와같이 HandlerExceptionResolver  인터페이스를 직접 상속받아서Resolver 를 만들어 내는 방법이있다.

- BaseExceptionResolver.java
package dic.resolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
public class BaseExceptionResolver implements HandlerExceptionResolver {
 private String view = null;
 public void setView(String view) {
  this.view = view;
 }
 
 public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object obj, Exception exception) {
  request.setAttribute("exception",exception);
  return new ModelAndView(view);
 }
}

위 파일의 bean 설정은 아래처럼 하면 된다.
- springapp-servlet.xml
    <bean id="exceptionResolver" class="dic.resolver.BaseExceptionResolver">
     <property name="view" value="error"/>
    </bean>

- 이 방법을 쓰는이유는 request 로 exception 을 넘기기 위해서이다.

2007/05/29 17:28 2007/05/29 17:28

trackback url :: http://cranix.net/tt/trackback/184

댓글을 달아 주세요

write a comment