Java SpringBoot全局錯誤處理類,返回標准結果


package demo.utils;

import com.alibaba.fastjson.JSON;
import demo.controller.ProductController;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * Controller全局錯誤捕獲類
 */
@RestControllerAdvice  //攔截異常並統一處理
public class ExceptionIntercept {
    public static final String PLAT_ERROR = "PLAT_ERROR";
    // Logger和LogManager導入的是org.apache.logging包
    private static final Logger logger = LogManager.getLogger(ProductController.class);

    @ExceptionHandler(Exception.class)
    public MessagePack handler(Exception ex) {
        //返回錯誤數據包
        MessagePack pack = new MessagePack();
        pack.setCode(MessagePack.ERROR);
        pack.setMessage(ex.getMessage());
        pack.setStatus(PLAT_ERROR);
        //同時記錄錯誤日志
        logger.error("Controller全局錯誤捕獲類==>" + JSON.toJSONString(pack));
        return pack;
    }
}
package demo.utils;

import java.io.Serializable;

/**
 * 統一返回消息類
 */
public class MessagePack implements Serializable {
    public static final long OK = 0;

    public static final long ERROR = -1;

    // 狀態碼
    private long code;
    // 信息
    private String message;
    // 攜帶的值
    private Object object;
    // 狀態信息
    private String status;

    public long getCode() {
        return code;
    }

    public void setCode(long code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getObject() {
        return object;
    }

    public void setObject(Object object) {
        this.object = object;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM