반응형
@ExceptionHandler를 이용한 예외 처리
@ExceptionHandler는 컨트롤러의 요청 처리 메소드 실행 중 예외가 발생하면
이를 처리하기 위한 예외 처리 메소드입니다.
형식은 다음과 같습니다.
@ExceptionHandler(value={예외 클래스1.class[,예외 클래스2.class,...]})
public String 메소드 이름() {
...
}
@ExceptionHandler
public String 메소드 이름(예외 클래스 exp) {
...
}
@ExceptionHandler의 value속성은 예외 처리를 담당하는 클래스 이름을 설정합니다.
value 속성은 생략이 가능합니다.
value 속성을 생략하고 @ExceptionHandler만 사용하기 위해서는
예외 처리 메소드의 매개변수로 예외 처리를 담당하는 클래스가 반드시 설정되어야 합니다.
@ExceptionHandler의 속성은 다음과 같습니다.
요소 | 타입 | 설명 |
value | Class<? extends Throwable>[] | @ExceptionHandler가 선언된 메소드가 처리할 예외 클래스 |
@ExceptionHandler를 사용하면 @ResponseStatus 없이 예외 처리가 가능합니다.
또 컨트롤러 안에 오류나 예외를 구체화하여 처리가 가능합니다.
이를 이용해서 발생한 예외 정보를 얻고 특정 뷰 페이지로 이동이 가능합니다.
다음은 예외 처리 메소드에 @ExceptionHandler를 선언해서 오류를 직접 처리하는 예시입니다.
package com.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class Example03Controller {
@RequestMapping("/exam03")
public void handleRequest() {
throw new Example03Exception();
}
@ExceptionHandler(Example03Exception.class)
public ModelAndView handleException(Example03Exception ex) {
ModelAndView model = new ModelAndView();
model.addObject("errorMessage",ex.getErrMsg());
model.addObject("exception",ex);
model.setViewName("webpage10_03");
return model;
}
}
package com.springmvc.controller;
@SuppressWarnings("serial")
public class Example03Exception extends RuntimeException{
private String errMsg;
public Example03Exception() {
super();
this.errMsg = "Example03Exception 메시지입니다.";
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
}
위 코드를 실행하면 다음과 같은 결과가 나옵니다.
반응형
'SPRING' 카테고리의 다른 글
[SPRING]#36 도서 쇼핑몰 구현 (예외 처리5) (0) | 2024.01.16 |
---|---|
[SPRING]#35 도서 쇼핑몰 구현 (예외 처리4) (0) | 2024.01.16 |
[SPRING]#33 도서 쇼핑몰 구현 (예외 처리2) (0) | 2024.01.15 |
[SPRING]#32 도서 쇼핑몰 구현 (예외 처리1) (0) | 2024.01.15 |
[SPRING]#31 도서 쇼핑몰 구현 (파일 업로드5) (0) | 2024.01.12 |