많이 사용되는 예외 처리 기법 중 ExceptionResolver 의 일종인 SimpleMappingExceptionResolver 를 사용하여 Exception 종류 별로 특정 페이지로 이동 할 수 있게 하는 방법 이 있다.
Controller 의 기능만 사용해서 개발 한다면 Spring MVC 의 범위 안에서 Exception 을 해결 할 수 있기 때문에 크게 문제가 되지 않는다. 실제 개발 하는 부분은 Execute Business Logic 가 전부 이기 때문 이다.
회사에서 Spring MVC 라이브러리를 바탕으로 하여 만들어 지는 프레임워크는 Handler Mapping, Handler Adapter, View Resolver 의 확장이 대부분 이며, 예외 처리는 직접 고려해야 한다.
Business Logic 을 처리 하고 난 후 사용자에게 제공 되는 화면이 요구사항에 따라 달라질 수 있고, 잦을 수도 있다. 이에 대응 하기 위해서 View 를 확장 한다.
AbstractView 를 사용해서 작업한 내용의 글 이다. 필요한 경우 참고 하자.
View 를 확장 했기 때문에 ExceptionResolver 가 예외 처리를 할 수 없다. 시점 이 그 이후 이기 때문 이다. 추가 적인 예외 처리가 필요 한대 WAS(Web Application Server) 에서 제공 하는 기능을 사용 해야 한다.
실제 서비스 중에 알파벳이 난무 하는 화면이 보여진 다면, 문제가 심각할 것 이다. 디버깅을 해서 보완을 하더라도, 그 시간동안은 대체 하는 화면이 필요 하다.
<error-page> <error-code>400</error-code> <location>/WEB-INF/view/error/badrequest.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/WEB-INF/view/error/notfound.jsp</location> </error-page> <error-page> <error-code>414</error-code> <location>/WEB-INF/view/error/requesturitoolong.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/WEB-INF/view/error/internalservererror.jsp</location> </error-page>
web.xml 에 추가 하자. 보통 /WEB-INF/web.xml 에 파일이 있다.
error-page
Http Status Code 에 따라 보여질 화면을 설정 한다.
강제로 에러를 발생해서 확인 해 보면 의도하는 화면이 표현 될 것 이다.
요구사항에 대한 기능은 정상적으로 동작 하기 때문에, 별거 아니라고 생각하고 지나칠 수 있다. 신경 써서 마무리 한다면 완성도 가 높은 프로젝트를 경험 할 수 있을 것 이다.
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.