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

    参考:http://www.fengyunxiao.cn

    1. 建立 json 结果类,用于统一处理 json 结果

    public class JsonResult<T> {
        // code=0表示成功,返回数据data。data!=0,表示错误,返回错误信息msg
        private int code;
        // 若有错误,data不生成json
        @JsonInclude(JsonInclude.Include.NON_NULL)
        private T data;
        // 若无错误,msg 不生成 json
        @JsonInclude(JsonInclude.Include.NON_NULL)
        private String msg;
    
        public JsonResult() {
            code = 0;
        }
    
        public JsonResult<T> ok(T data) {
            this.code = 0;
            this.data = data;
            return this;
        }
    
        public JsonResult<T> error(int code, String msg) {
            this.code = code;
            this.msg = msg;
            return this;
        }
    
        public T getData() {
            return data;
        }
    
        public void setData(T data) {
            this.data = data;
        }
    
        public int getCode() {
            return code;
        }
    
        public void setCode(int code) {
            this.code = code;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    }
    

    2. 建立自定义异常类

    public class CustemerException extends Exception {
        public CustemerException(String message) {
            super(message);
        }
    }
    

    3. 建立 rest controller 的异常抓捕类

    @RestControllerAdvice
    public class JsonExceptionHandler {
    
        @ExceptionHandler(value = Exception.class)
        public JsonResult<String> resolveException(HttpServletRequest request, HttpServletResponse response, Exception e) {
            JsonResult<String> result = new JsonResult<>();
            return result.error(1, e.getMessage());
        }
    
    }
    

    4. 在 rest controller的方法中抛出异常

    @Controller
    public class TestController {
    
        @RequestMapping("/test_error")
        public Object testError() throws Exception {
            if (true) {
                throw new CustemerException("抛出自定义异常");
            }
            return 1;
        }
    
    }
    

    5. 测试

    参考:http://www.fengyunxiao.cn

  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/zscc/p/9449974.html
Copyright © 2011-2022 走看看