亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot全局統一異常處理器的示例分析

發布時間:2021-05-14 09:26:17 來源:億速云 閱讀:206 作者:小新 欄目:開發技術

這篇文章主要介紹Spring Boot全局統一異常處理器的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、封裝統一返回結果類

import com.jiusen.exercise.enums.ErrorEnum;
import com.jiusen.exercise.exception.BusinessException;
import lombok.Getter;
import lombok.Setter;
 
/**
 * @author: Lawson
 * @date: 2021/5/11
 * @description: TODO 統一的返回結果
 */
@Getter
@Setter
public class AjaxResult {
 
    //是否成功
    private Boolean success;
    //狀態碼
    private Integer code;
    //提示信息
    private String msg;
    //數據
    private Object data;
 
    public AjaxResult() {
    }
 
    //自定義返回結果的構造方法
    public AjaxResult(Boolean success, Integer code, String msg, Object data) {
        this.success = success;
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
 
    //自定義異常返回的結果
    public static AjaxResult defineError(BusinessException de) {
        AjaxResult result = new AjaxResult();
        result.setSuccess(false);
        result.setCode(de.getErrorCode());
        result.setMsg(de.getErrorMsg());
        result.setData(null);
        return result;
    }
 
    //其他異常處理方法返回的結果
    public static AjaxResult otherError(ErrorEnum errorEnum){
        AjaxResult result = new AjaxResult();
        result.setMsg(errorEnum.getErrorMsg());
        result.setCode(errorEnum.getErrorCode());
        result.setSuccess(false);
        result.setData(null);
        return result;
    }
}

二、自定義異常封裝類

import lombok.Getter;
import lombok.Setter;
 
/**
 * @author: Lawson
 * @date: 2021/5/11
 * @description: TODO 類描述
 */
@Getter
@Setter
public class BusinessException extends RuntimeException{
 
    private static final long serialVersionUID = 1L;
 
    /**
     * 錯誤狀態碼
     */
    protected Integer errorCode;
    /**
     * 錯誤提示
     */
    protected String errorMsg;
 
    public BusinessException() {
    }
 
    public BusinessException(String message, Integer errorCode, String errorMsg) {
        super(message);
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }
}

三、錯誤枚舉

**
 * @author: Lawson
 * @date: 2021/5/11
 * @description: TODO 類描述
 */
public enum  ErrorEnum {
    //數據操作錯誤定義
    SUCCESS(200, "成功"),
    NO_PERMISSION(403, "你無權訪問"),
    NO_Auth(401, "未授權,請登錄驗證"),
    NO_FOUND(404, "未找到資源"),
    INTERNAL_SERVER_ERROR(500, "服務器異常, 請聯系管理員!");
 
 
    /**
     * 錯誤碼
     */
    private Integer errorCode;
    /**
     * 錯誤信息
     */
    private String errorMsg;
 
    ErrorEnum(Integer errorCode, String errorMsg) {
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }
 
    public Integer getErrorCode() {
        return errorCode;
    }
 
    public String getErrorMsg() {
        return errorMsg;
    }
}

四、全局異常處理類

import com.jiusen.exercise.enums.ErrorEnum;
import com.jiusen.exercise.exception.BusinessException;
import com.jiusen.exercise.rest.AjaxResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
 
 
/**
 * @author: Lawson
 * @date: 2021/5/11
 * @description: TODO 類描述
 */
@RestControllerAdvice
public class GlobalExceptionHandler {
 
    private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
 
    /**
     * 處理自定義異常
     * @param e
     * @return
     */
    @ExceptionHandler(value = BusinessException.class)
    public AjaxResult bizExceptionHandler(BusinessException e) {
        log.error(e.getErrorMsg(), e);
        return AjaxResult.defineError(e);
    }
 
    /**
     * 處理其它異常
     */
    @ExceptionHandler(value = Exception.class)
    public AjaxResult exceptionHandler(Exception e) {
        log.error(e.getMessage(), e);
        return AjaxResult.otherError(ErrorEnum.INTERNAL_SERVER_ERROR);
    }
}

五、測試

import com.jiusen.exercise.enums.ErrorEnum;
import com.jiusen.exercise.exception.BusinessException;
import com.jiusen.exercise.rest.AjaxResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
 
 
/**
 * @author: Lawson
 * @date: 2021/5/11
 * @description: TODO 類描述
 */
@RestControllerAdvice
public class GlobalExceptionHandler {
 
    private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
 
    /**
     * 處理自定義異常
     * @param e
     * @return
     */
    @ExceptionHandler(value = BusinessException.class)
    public AjaxResult bizExceptionHandler(BusinessException e) {
        log.error(e.getErrorMsg(), e);
        return AjaxResult.defineError(e);
    }
 
    /**
     * 處理其它異常
     */
    @ExceptionHandler(value = Exception.class)
    public AjaxResult exceptionHandler(Exception e) {
        log.error(e.getMessage(), e);
        return AjaxResult.otherError(ErrorEnum.INTERNAL_SERVER_ERROR);
    }
}

Spring Boot全局統一異常處理器的示例分析

Spring Boot全局統一異常處理器的示例分析

springboot是什么

springboot一種全新的編程規范,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程,SpringBoot也是一個服務于框架的框架,服務范圍是簡化配置文件。

以上是“Spring Boot全局統一異常處理器的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新邵县| 彰武县| 樟树市| 库尔勒市| 林口县| 芷江| 阿勒泰市| 石首市| 娱乐| 泰安市| 榆中县| 阳西县| 丰原市| 新余市| 宣汉县| 盖州市| 五常市| 株洲县| 惠州市| 察雅县| 通州区| 东丽区| 巴马| 元谋县| 景洪市| 合水县| 潞城市| 奇台县| 昭通市| 菏泽市| 涟水县| 疏附县| 九龙坡区| 芦山县| 宁城县| 安泽县| 遵义县| 宁明县| 图木舒克市| 永新县| 清水县|