본문 바로가기

카테고리 없음

[Spring]Spring MVC에서의 exception 처리

Spring MVC에서 exception 발생 시 처리과정

Spring MVC의 모든과정에서 Excption이 발생 할 경우 ExceptionController를 통하여 관리한다.

ExceptionController에서 각 Excption별로 적절한 jsp로 이동시켜서 응답한다.


Exception Class와 ExceptionController 만들기

 

 

1. exception패키지를 만들어서  ExceptionController를 만들어준다.

또 원하는 예외사항을 받을 exception class를 만든다.

 

 

 

2.Exception Class에서 RuntimeException을 (extends)상속받는다.

 

 

 

3-1. 컨트롤러클래스에 @ControllerAdvice어노테이션 등록한다.

3-2. 예외사항을 처리할 메소드에 @ExceptionHandler(처리할 exception이담긴클래스)어노테이션 등록한다.

3-3 @ResponseStatus(HttpStaus.jsp명)은 브라우저에서의 네트워크의 응답상태도 정상상태가 아닌 예외상태로 표기해준다.

 

 

 


만든 exception처리 사용하기

 

serivice의 삭제를 수행하는 메소드

파일 작성자만 삭제할 수 있는 기능을 구현하려고 한다.

삭제를 시도한 로그인된 id와 파일을 작성한 id가 다를 때 삭제를 시도하면 CanNotDeleteException객체를 만들어 던지게 하였다. CanNotDeleteException은 RuntimeException을 상속받고 있기에 던지는 것이 가능하다.

 

 

 

exceptioncontroller

위에서 만들어진 CanNotDeleteException

@ExceptionHandler로 인하여 경로를 받아서 ExceptionController의 처리를 받게된다.

ExceptionController에서 error/forbidden.jsp로 포워드 이동시키며 응답한다.