[Spring] 예외처리: @ExceptionHandler, SimpleMappingExceptionResolver

예외처리

  • @RequestMapping 메서드는 모든 타입의 예외를 발생시킬 수 있다.
  • 예외를 발생시킬 경우 웹 브라우저는 500 응답코드와 함께 서블릿 컨테이너가 출력한 에러 페이지가 출력된다.
  • 예외 타입에 따라 스프링 MVC와 연동된 뷰를 이용해서 에러 페이지를 출력할 수 있다.
  • 예외 발생시 사용자에게 보여줄 특정 페이지를 만들어 출력한다. (공통의 예외를 한 페이지에서 처리 가능)

 

 

처리 방법

  • @ExceptionHandler 어노테이션을 이용한 예외처리
    • @ExceptionHandler 메소드를 만든 Controller 영역에서만 유효함
@ExceptionHandler(ArrayIndexOutOfBoundsException.class)
public String arithmetic(ArrayIndexOutOfBoundsException e) {
	System.out.println("ArrayIndexOutOfBoundsException 실행: " + e);
    return "array"; 	// 오류가 나면 보여줄 페이지
}

 

  • SimpleMappingExceptionResolver 클래스를 이용한 예외처리
    • xml 문서에서 설정함 (오류 종류에 따라 다른 페이지 이동)
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
	<property name="exceptionMappings">
    		<props>
        		<prop key="java.lang.ArithmeticException">	<!-- 이동할 뷰 -->
            		exception
            		</prop>
        	</props>
    	</property>
</bean>

 

'TIL > BackEnd' 카테고리의 다른 글

JPA - Oracle 데이터베이스 생성  (0) 2023.05.08
Transaction  (0) 2023.05.04
@Autowired와 @Value를 통한 주입의 차이  (0) 2023.04.26
[Spring] IoC & DI  (0) 2023.04.25
[Spring] Spring Framework 기초  (0) 2023.04.24