SpringBoot 학습 의 전역 이상 처리 설정(JSON 으로 돌아 가기)

SpringBoot 학습―전역 이상 처리 설정(JSON 으로 돌아 가기)
수요
  • 현재 ajax 방식 으로 요청 하 는 습관 이 있 기 때문에 서버 에서 json 이나 문자열 을 되 돌려 야 합 니 다
  • 전체 국면 을 통제 하 는 이상 처리
  • 하나의 방법 에서 try 를 사용 하면 catch 는 방법 을 감 싸 고 작업량 이 많 으 며 이상 하 게 던 져 서@Transactional 주해 하 는 방법 은 다시 굴 러 가지 않 습 니 다
  • 설명 하 다.
  • @Controller Advice 주 해 를 사용 합 니 다
  • @ExceptionHandler 주 해 를 사용 합 니 다@ControllerAdvice
    이 주 해 는 spring 2.3 이후 추 가 된 주해 로 주로 Controller 의 일부 공공 수요 의 저 침입 성 강화 에 도움 을 주 고@RequestMapping 레이 블 방법 에 작용 합 니 다.
    @ExceptionHandler
    이 주 해 는@ExceptionHandler 와 함께 사용 하 는 주해 로 오류 처리 기 를 사용자 정의 하여 json 문자열 을 직접 조립 하여 페이지 로 돌아 갈 수 있 습 니 다.
    코드
    전역 이상 처리 클래스 를 만 듭 니 다.다음 과 같 습 니 다.
    실현 을 향 해 서로 다른 이상 이 다른 조작 이 있다 면@ExceptionHandler 의 value 값 을 다 르 게 하면 되 며,여러 개의 다른 이상 처 리 를 동시에 할 수 있 으 나 포함 상태 가 나타 나 지 않 습 니 다.
    
    import javax.servlet.http.HttpServletRequest;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @ControllerAdvice
    @ResponseBody
    public class GlobalExceptionHandler {
    
      /**
       *       
       * @param request
       * @param exception
       * @return
       * @throws Exception
       */
      @ExceptionHandler(value=Exception.class) 
      public String allExceptionHandler(HttpServletRequest request, 
          Exception exception) throws Exception 
      { 
        exception.printStackTrace();
        System.out.println("    :"+exception.getLocalizedMessage());
        System.out.println("    :"+exception.getCause());
        System.out.println("    :"+exception.getSuppressed());
        System.out.println("    :"+exception.getMessage());
        System.out.println("    :"+exception.getStackTrace());
        return "     ,      !"; 
      } 
    }
    이상 류 를 던 지 는 것 을 시 뮬 레이 션 합 니 다.다음 예 는 빈 포인터 이상 과 분모 가 이상 하지 않 습 니 다.
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    @RequestMapping("/exceptionTest")
    @ResponseBody
    public class ExceptionTest {
      @RequestMapping("/test")
      public String test(){
        Message msg = null;
        msg.toString();
        createException();
        return "     ";
      }
    
      private void createException(){
        int i = 5/0;
      }
    }
    Springboot 시작,실행 결과
    문자열 을 되 돌려 주기 때문에 json 도구 류 를 사용 하여 패키지 할 수도 있 고 json 문자열 을 되 돌려 줄 수도 있 습 니 다.  
     

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기