1. 程式人生 > >(辦公)springboot配置全局異常

(辦公)springboot配置全局異常

str 錯誤 狀態 success bject spa data clas 消息

   項目用到了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;
    }
}

(辦公)springboot配置全局異常