Spring MVC/03.예외 처리
-
마지막으로 웹 오류에서 조금은 독특한 404 오류 처리에 대해서 살펴보자. 404 오류는 다른 오류와 달리 기본적으로 @Controller를 탈 필요가 없기 때문에 Exception으로 처리되지 않는 특성이 있다. 그럼 404 상황을 Exception으로 만들어서 처리할 수 있을까? legacy @ControllerAdvide에서 처리 404를 프로그래밍적으로 처리하고 싶다면 404 발생 시 예외를 발생시키도록 설정해야 한다.(기본적으로 404는 exception 상황이 아니다.) 이를 위해 web.xml에서 DispatcherServlet을 등록할 때 throwExceptionIfNoHandlerFound 초기화 파라미터를 true로 설정한다. dispatcher org.springframework.w..
[spring 예외 처리] 04. 프로그래밍적인 404 처리마지막으로 웹 오류에서 조금은 독특한 404 오류 처리에 대해서 살펴보자. 404 오류는 다른 오류와 달리 기본적으로 @Controller를 탈 필요가 없기 때문에 Exception으로 처리되지 않는 특성이 있다. 그럼 404 상황을 Exception으로 만들어서 처리할 수 있을까? legacy @ControllerAdvide에서 처리 404를 프로그래밍적으로 처리하고 싶다면 404 발생 시 예외를 발생시키도록 설정해야 한다.(기본적으로 404는 exception 상황이 아니다.) 이를 위해 web.xml에서 DispatcherServlet을 등록할 때 throwExceptionIfNoHandlerFound 초기화 파라미터를 true로 설정한다. dispatcher org.springframework.w..
2022.11.07 -
이전 포스트에서 @ControllerAdvice를 통한 예외 처리에 대해서 살펴보았다. 이번 포스트에서는 SpringBoot에서 특화된 처리방법을 살펴보자. SpringBoot의 오류 페이지 BasicErrorController SpringBoot에서 /error에 대한 처리를 담당하는 @Controller는 BasicErrorController이다. 이 녀석의 핵심되는 코드만 잠깐 살펴보자. @Controller // ${server.error.path} 또는 ${error.path} 또는 /error 요청에 대해 처리 @RequestMapping("${server.error.path:${error.path:/error}}") public class BasicErrorController extends ..
[spring 예외 처리] 03.프로그래밍을 통한 예외 처리 2이전 포스트에서 @ControllerAdvice를 통한 예외 처리에 대해서 살펴보았다. 이번 포스트에서는 SpringBoot에서 특화된 처리방법을 살펴보자. SpringBoot의 오류 페이지 BasicErrorController SpringBoot에서 /error에 대한 처리를 담당하는 @Controller는 BasicErrorController이다. 이 녀석의 핵심되는 코드만 잠깐 살펴보자. @Controller // ${server.error.path} 또는 ${error.path} 또는 /error 요청에 대해 처리 @RequestMapping("${server.error.path:${error.path:/error}}") public class BasicErrorController extends ..
2022.11.06 -
설정을 통해서 예외를 처리하는 방법은 간단하지만 개입할 여지가 없어진다. 예를 들어 오류 상황이 발생했을 때 logging을 한다든가, 관리자에게 메일을 보낸다든가 하는 일을 처리하기는 어렵다. 이처럼 예외 처리 시 부가적인 작업을 처리해야 하는 경우는 프로그래밍적으로 처리해야 한다. 이번 포스트에서는 Spring에서 프로그래밍적으로 예외를 처리하는 방식에 대해 알아보자. 개별 @Controller에서의 예외 처리 @Controller에서 예외를 처리하는 가장 기본적인 방법은 @ExceptionHandler를 활용하는 것이다. @Target(ElementType.METHOD) public @interface ExceptionHandler { Class[] basePackageClasses() defaul..
[spring 예외 처리] 02.프로그래밍을 통한 예외 처리 1설정을 통해서 예외를 처리하는 방법은 간단하지만 개입할 여지가 없어진다. 예를 들어 오류 상황이 발생했을 때 logging을 한다든가, 관리자에게 메일을 보낸다든가 하는 일을 처리하기는 어렵다. 이처럼 예외 처리 시 부가적인 작업을 처리해야 하는 경우는 프로그래밍적으로 처리해야 한다. 이번 포스트에서는 Spring에서 프로그래밍적으로 예외를 처리하는 방식에 대해 알아보자. 개별 @Controller에서의 예외 처리 @Controller에서 예외를 처리하는 가장 기본적인 방법은 @ExceptionHandler를 활용하는 것이다. @Target(ElementType.METHOD) public @interface ExceptionHandler { Class[] basePackageClasses() defaul..
2022.11.03 -
애플리케이션이 동작하다보면 당연히 수많은 예외가 발생한다. 자바에서 예외 처리를 위해서는 try ~ catch를 사용하는데 사실 이 따분한 코드는 작성하기가 매우 귀찮다. 따라서 스프링에서는 대부분 예외가 Runtime 계열의 예외로 wrapping 되어 자동으로 throws 되게 하고 WAS가 처리하도록 위임하거나 @Controller에서 프로그래밍적으로 처리한다. error 페이지는 예상치 못했던 클라이언트의 요청에 대해 WAS가 응답하는 결과라고 볼 수 있다. 하지만 WAS가 보여주는 error 페이지는 너무나 흉찍하고 여기서 보여지는 error 정보들을 헤커의 먹이감이 되기 때문에 반드시 사용자 정의 페이지로 처리해주어야 한다. 이번 포스트에서는 WAS에게 처리를 위임하는 형태를 살펴보자. 준비작..
[spring 예외 처리] 01.설정을 통한 예외 처리애플리케이션이 동작하다보면 당연히 수많은 예외가 발생한다. 자바에서 예외 처리를 위해서는 try ~ catch를 사용하는데 사실 이 따분한 코드는 작성하기가 매우 귀찮다. 따라서 스프링에서는 대부분 예외가 Runtime 계열의 예외로 wrapping 되어 자동으로 throws 되게 하고 WAS가 처리하도록 위임하거나 @Controller에서 프로그래밍적으로 처리한다. error 페이지는 예상치 못했던 클라이언트의 요청에 대해 WAS가 응답하는 결과라고 볼 수 있다. 하지만 WAS가 보여주는 error 페이지는 너무나 흉찍하고 여기서 보여지는 error 정보들을 헤커의 먹이감이 되기 때문에 반드시 사용자 정의 페이지로 처리해주어야 한다. 이번 포스트에서는 WAS에게 처리를 위임하는 형태를 살펴보자. 준비작..
2021.10.22