zoukankan      html  css  js  c++  java
  • springboot自定义异常处理

    在实际业务中,springboot的异常处理可能无法满足我们的业务需求,那么就需要我们自定义异常来处理

    • 自定义异常

    • package com.zhk.demo.exception;
      
      public class OrderNotExistException extends RuntimeException{
          private String ordreid;
      
          public OrderNotExistException(String ordreid){
              super("订单不存在");
              this.ordreid = ordreid;
          }
      
      
          public String getOrdreid() {
              return ordreid;
          }
      }
      

        

    • 自定义异常处理类

    • package com.zhk.demo.exceptionhander;
      
      import com.zhk.demo.exception.OrderNotExistException;
      import org.springframework.web.bind.annotation.ControllerAdvice;
      import org.springframework.web.bind.annotation.ExceptionHandler;
      import org.springframework.web.bind.annotation.ResponseBody;
      
      import java.util.HashMap;
      import java.util.Map;
      
      /*
      ControllerAdvice  说明是异常处理器  ResponseBody 返回json    ExceptionHandler指定要处理什么异常
       */
      @ControllerAdvice
      @ResponseBody
      public class MyExceptionHandler {
          @ExceptionHandler(OrderNotExistException.class)
          public Map<String,String> handlerOrderException(OrderNotExistException e){
             Map<String,String> map = new HashMap<>();
             map.put("orderid",e.getOrdreid());
             map.put("message", e.getMessage());
             return map;
          }
      }
    • 编写测试类

    • package com.zhk.demo.controller;
      
      import com.zhk.demo.exception.OrderNotExistException;
      import org.springframework.http.HttpStatus;
      import org.springframework.stereotype.Controller;
      import org.springframework.web.bind.annotation.*;
      
      @Controller
      @ResponseBody
      @RequestMapping("/order")
      public class OrderController {
          @GetMapping("/{orderid}")
          @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
          public void getOrder(@PathVariable(name = "orderid") String orderid) throws RuntimeException{
              if("1".equals(orderid)){
                  throw  new OrderNotExistException(orderid);
              }else{
                  throw  new RuntimeException("这是系统异常");
              }
          }
      }
      

        

    • 测试接口

       

    •  

  • 相关阅读:
    寻找大富翁
    C++ STL sort()函数用法
    众数
    平方因子
    Hdu 1089 A+B for Input-Output Practice (I)
    Hdu 1090 A+B for Input-Output Practice (II)
    Hdu 1083 Courses
    Hdu 1069 Monkey and Banana
    Hdu 1062 Text Reverse
    Hdu 1068 Girls and Boys
  • 原文地址:https://www.cnblogs.com/zhanghongke/p/10135220.html
Copyright © 2011-2022 走看看