exception : HandlerExceptionResolver
This commit is contained in:
@@ -2,14 +2,17 @@ package hello.exception;
|
||||
|
||||
import hello.exception.filter.LogFilter;
|
||||
import hello.exception.interceptor.LogInterceptor;
|
||||
import hello.exception.resolver.MyHandlerExceptionResolver;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.HandlerExceptionResolver;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import javax.servlet.DispatcherType;
|
||||
import javax.servlet.Filter;
|
||||
import java.util.List;
|
||||
|
||||
@Configuration
|
||||
public class WebConfig implements WebMvcConfigurer {
|
||||
@@ -22,6 +25,11 @@ public class WebConfig implements WebMvcConfigurer {
|
||||
.excludePathPatterns("/css/**", "*.ico", "/error", "/error-page/**"); // 오류 페이지 경로 추가
|
||||
}
|
||||
|
||||
@Override
|
||||
public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
|
||||
resolvers.add(new MyHandlerExceptionResolver());
|
||||
}
|
||||
|
||||
@Bean
|
||||
public FilterRegistrationBean<Filter> logFilter() {
|
||||
FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>();
|
||||
|
||||
@@ -6,7 +6,7 @@ import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
//@Component
|
||||
public class WebServerCustomizer implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
|
||||
@Override
|
||||
public void customize(ConfigurableWebServerFactory factory) {
|
||||
|
||||
@@ -16,6 +16,8 @@ public class ApiExceptionController {
|
||||
|
||||
if (id.equals("ex")) {
|
||||
throw new RuntimeException("잘못된 사용자");
|
||||
} else if (id.equals("bad")) {
|
||||
throw new IllegalArgumentException("잘못된 입력 값");
|
||||
}
|
||||
|
||||
return new MemberDto(id, "hello " + id);
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package hello.exception.resolver;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.servlet.HandlerExceptionResolver;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
@Slf4j
|
||||
public class MyHandlerExceptionResolver implements HandlerExceptionResolver {
|
||||
|
||||
@Override
|
||||
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
|
||||
|
||||
try {
|
||||
if (ex instanceof IllegalArgumentException) {
|
||||
log.info("IllegalArgumentException resolver to 400");
|
||||
response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage());
|
||||
return new ModelAndView();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error("resolver ex ", e);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user