본문 바로가기
Spring/Spring MVC 5

예외처리

코동이 2020. 5. 27.

프로그램 실행 중 오류가 발생되면 프로그램이 중단되는데, 이 오류표시가 사용자 입장에서 보기 좋지 않다.

따라서, 오류 발생시 보여줄 jsp를 구성하고 이 jsp로 응답결과를 생성하여 브라우저로 전달한다.

 

@ExceptionHandler는 Controller마다 만들면 불편하기 때문에 오류에 관련된 핸들러가 Controller에 없다면 Global Exception Handler를 만든다.

 

예외처리하는 방법은 다음과 같다.

1. Exception을 implements하고 @ControllerAdvice를 가진 GlobalExceptionHandler.java 생성하고 @ExceptionHandler로 예외처리 내용 정하기

2. 에러처리를 위한 jsp파일 생성 후 return

3. ServletAppContext에 ComponentScan 등록하기

 

 

1. Exception을 implements하고 @ControllerAdvice를 가진 GlobalExceptionHandler.java 생성하고 @ExceptionHandler로 예외처리 내용 정하기

@ControllerAdvice
public class GlobalExceptionHandler extends RuntimeException {

	@ExceptionHandler(java.lang.NullPointerException.class)
	public String handleException() {
		return "error2";
	}
}

클래스 위에 @ControllerAdvice 를 정의하면, Controller의 일종으로 scan이 되어 Context에 등록된다.

@ExceptionHandler를 정의하고 exception의 내용을 쓰고 Controller처럼 return 할 곳을 정한다.

 

 

 

2. 에러처리를 위한 jsp파일 생성 후 return

error를 나타내는 jsp 파일 생성

 

 

 

3. ServletAppContext에 ComponentScan 등록하기

@ComponentScan("com.example.exception")

 

이제 TestController에 ExceptionHandler를 등록하지 않아도, 자동으로 예외 발생 시, GlobalExceptionHandler에서 처리된다.

반응형

'Spring > Spring MVC 5' 카테고리의 다른 글

Restful API  (0) 2020.05.28
MyBatis  (0) 2020.05.27
Interceptor  (0) 2020.05.27
Validator 커스터마이징  (0) 2020.05.27
JSR-303 / JSR-383  (0) 2020.05.27