반응형
스프링(Spring) 구조에서 어떤 특정한 소스 코드에서는 Exception을 다르게 태우고 싶은 경우가 있다. 이 경우에 아래와 같이 하면 특정 소스 코드에 Exception 따로 생성하여 처리할 수 있다. 거의 공통적으로, 웹에서 사용되는 Exeption은 sqlException, sessionException, dataException 등이 있다. 이 외에 다른 Exeption이 발생할 경우에는 개발자가 따로 정의하여 Exeption 처리를 할 수 있다.
지금 이 글에서 적는 Exception 처리하는 경우는 jsp에서의 error가 아닌, jsp를 불러오기 전의 로직에서 Exception 에러가 발생하는 경우다. jsp에서의 error가 발생하는 경우에는 web.xml에서 처리를 할 수 있지만, 이 경우에는 다르게 한다.
특정 소스 코드에 Exception 따로 생성하여 처리하는 방법
1. 먼저, servlet-context.xml에 exception을 등록한다.
- 아래와 같이, aException이라는 Exception을 등록한다.
<bean
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="com.test.exception.AException">
aException
</prop>
</props>
</property>
<property name="exceptionAttribute" value="exceptionMsg" />
</bean>
2. aException의 class를 만든다.
- 아래 코드와 같이, AException은 Exception을 상속받는다.
package com.test.exception;
public class AException extends Exception {
private static final long serialVersionUID = -123456789123813584L;
}
3. aException의 jsp파일을 만든다.
- Exception 에러가 발생하는 경우, 이 Exception을 캐치하여 화면을 보여줄 jsp를 만들어야 한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String msg = "No corresponding screens or data were found.";
%>
<%=msg%>
이렇게 하면, 특정 소스 코드에서 발생하는 Exception을 다르게 처리할 수 있다.
반응형
최근댓글