欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

(办公)springboot配置全局异常

程序员文章站 2023-12-06 14:01:34
项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置。最近springboot用的还是蛮多的,我还是做事情,把经验发表一下.全局统一的异常,首先异常的返回值和正常返回的返回值应该统一json.返回值的code和msg可以用enum保存起来,cont ......

   项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置。最近springboot用的还是蛮多的,我还是做事情,把经验发表一下.全局统一的异常,首先异常的返回值和正常返回的返回值应该统一json.返回值的code和msg可以用enum保存起来,controller层的方法抛出异常.下面看代码.

      

package com.imooc.shoptest001.handle;

import com.imooc.shoptest001.utils.jsondata;
import org.springframework.web.bind.annotation.controlleradvice;
import org.springframework.web.bind.annotation.exceptionhandler;
import org.springframework.web.bind.annotation.responsebody;

/**
 * 全局异常捕获
 */
@controlleradvice
public class exceptionhandle {

    /**
     * exceptionhandler 捕获什么异常
     * responsebody 返回json格式
     * @return
     */
    @exceptionhandler(value = exception.class)
    @responsebody
    public jsondata handle(exception ex){
        ex.printstacktrace();
        system.out.println(ex.tostring());
        return jsondata.error500(ex.getmessage());
    }
}

 

      

package com.imooc.shoptest001.utils;

public enum jsondataenum {
    error(-1,"失败"),
    success(0,"成功"),
    ;
    private integer code;

    private string msg;

    jsondataenum(integer code,string msg){
        this.code = code;
        this.msg = msg;
    }

    public integer getcode() {
        return code;
    }

    public string getmsg() {
        return msg;
    }
}
package com.imooc.shoptest001.utils;

/**
 * 前台返回json类
 */
public class jsondata<t> {
    /**
     * 返回状态
     */
    private boolean status;
    /**
     * 错误码/正确码
     */
    private integer code;
    /**
     * 消息.
     */
    private string msg;
    /**
     * 具体的内容.
     */
    private t data;

    public static jsondata success(string msg,object data){
        jsondata jsondata = new jsondata();
        jsondata.setmsg(msg);
        jsondata.setstatus(true);
        jsondata.setcode(200);
        jsondata.setdata(data);
        return jsondata;
    }

    public static jsondata ok(){
        jsondata jsondata = new jsondata();
        jsondata.setstatus(true);
        jsondata.setcode(200);
        return jsondata;
    }

    public static jsondata error(integer code,string msg){
        jsondata jsondata = new jsondata();
        jsondata.setstatus(false);
        jsondata.setcode(code);
        jsondata.setmsg(msg);
        return jsondata;
    }

    public static jsondata error500(string msg){
        jsondata jsondata = new jsondata();
        jsondata.setstatus(false);
        jsondata.setcode(500);
        jsondata.setmsg(msg);
        return jsondata;
    }



    public boolean isstatus() {
        return status;
    }

    public void setstatus(boolean status) {
        this.status = status;
    }

    public integer getcode() {
        return code;
    }

    public void setcode(integer code) {
        this.code = code;
    }

    public string getmsg() {
        return msg;
    }

    public void setmsg(string msg) {
        this.msg = msg;
    }

    public t getdata() {
        return data;
    }

    public void setdata(t data) {
        this.data = data;
    }
}