SpringBoot의 5가지 예외 처리

9814 단어 springboot
SpringBoot의 기본 예외 처리 메커니즘입니다.스스로 정의한 이상 1.templates 아래에 error 페이지를 만듭니다. 이름은 error일 뿐입니다.기본 설정을 변경하지 않고 자신이 정의한 이상 처리 인터페이스로 이동할 수 있습니다.
    @RequestMapping("/testError")
    public String testError() {
        int i=10/0;
        return "add";
    }


2. @Controller 조건에서 @ExceptionHandler(value = {java.lang.ArithmeticException.class}) 메모를 추가합니다.
 @ExceptionHandler(value = {java.lang.ArithmeticException.class})
    public ModelAndView arithmeticExceptionHandler(Exception e){
        ModelAndView mv = new ModelAndView();
        mv.addObject("error",e.toString());
        mv.setViewName("error1");
        return mv;
    }

3. 전역 프로필을 사용자 정의하여 이상을 설정합니다.클래스 이름에 있는 메모는 @ControllerAdvice입니다. 두 번째와는 다르고 업그레이드입니다.@ControllerAdvice+@ExceptionHandler 방식으로 예외 처리됩니다.

@ControllerAdvice
public class Exception {

 @ExceptionHandler(value = {java.lang.ArithmeticException.class})
 public ModelAndView arithmeticExceptionHandler(java.lang.Exception e){
     ModelAndView mv = new ModelAndView();
     mv.addObject("error",e.toString());
     mv.setViewName("error1");
     return mv;
 }
}

  • .전역 프로필을 사용자 정의하여 이상을 설정합니다.@Configuration으로 springboot에 프로필이라고 알려주고 Simple Mapping Exception Resolver 클래스를 @Bean으로 표시합니다.mapping의put() 방법 중 첫 번째 매개 변수는 이상한 오류 형식이고, 두 번째 매개 변수는 맵이 뛰는 인터페이스 경로입니다!
  • @Configuration
    public class SimpleMappingExceptionHandler {
    
        @Bean
        public SimpleMappingExceptionResolver exceptionResolver(){
            SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver();
            Properties mappings =new Properties();
            mappings.put("java.lang.ArithmeticException","error1");
    
            resolver.setExceptionMappings(mappings);
    
            return  resolver;
        }
    }
    

    5. HandlerException 클래스를 구축하고 HandlerExceptionResolver 인터페이스를 실현합니다.이 인터페이스의 Model AndView 형식의resolve Exception 방법을 다시 쓰고 if () 조건 문장으로 이상한 형식의 점프와 setViewName 점프 오류 페이지의 경로를 작성합니다.
    @Configuration
    public class HandlerException implements HandlerExceptionResolver {
        @Override
        public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, java.lang.Exception e) {
            ModelAndView modelAndView =new ModelAndView();
    
            if(e instanceof ArithmeticException){
                modelAndView.setViewName("error1");
    
            }
    
    
            return modelAndView;
        }
    }
    

    좋은 웹페이지 즐겨찾기