欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot 如何自定義返回錯(cuò)誤碼錯(cuò)誤信息

 更新時(shí)間:2019年08月13日 10:18:58   作者:小魚兒_karl  
這篇文章主要介紹了Spring Boot 如何自定義返回錯(cuò)誤碼錯(cuò)誤信息的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

 說明

•在實(shí)際的開發(fā)過程中,很多時(shí)候要定義符合自己業(yè)務(wù)的錯(cuò)誤碼和錯(cuò)誤信息,而不是統(tǒng)一的而不是統(tǒng)一的下面這種格式返回到調(diào)用端

INTERNAL_SERVER_ERROR(500, "Internal Server Error"),

下面我們來看看如何將我們自定義的錯(cuò)誤碼和錯(cuò)誤信息返回到調(diào)用端。

1 自定義錯(cuò)誤碼

•首先我們要定義一個(gè)枚舉類

public enum ErrorEnum {
  /*
   * 錯(cuò)誤信息
   * */
  E_20011(20011, "缺少必填參數(shù)"),
  ;
  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;
  }

2 定義一個(gè)異常類

•定義一個(gè)異常類繼承RuntimeException類

public class BusinessException extends RuntimeException {
  private static final long serialVersionUID = 1L;
  private Integer code;
  /**
   * @param errorEnum 以錯(cuò)誤的ErrorEnum做參數(shù)
   */
  public BusinessException(ErrorEnum errorEnum) {
    super(errorEnum.getErrorMsg());
    this.code = errorEnum.getErrorCode();
    this.resultJson = CommonUtil.errorJson(errorEnum);
  }
  public Integer getCode() {
    return code;
  }
  public void setCode(Integer code) {
    this.code = code;
  }
}

3 定義一個(gè)異常返回的模板類

•模板類定義了如何將異常通過什么形式進(jìn)行返回。

public class ExceptionResponse {
  private String message;
  private Integer code;
  public ExceptionResponse(Integer code, String message) {
    this.message = message;
    this.code = code;
  }
  public static ExceptionResponse create(Integer code, String message) {
    return new ExceptionResponse(code, message);
  }
  public Integer getCode() {
    return code;
  }
  public String getMessage() {
    return message;
  }
}

4 定義全局處理 Controller 層異常

@ControllerAdvice
@Slf4j
public class ExceptionHandler {

  @ResponseBody
  @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
  @ExceptionHandler(Exception.class)
  public ExceptionResponse handleException(Exception ex) {
    if (ex instanceof BusinessException) {
      log.warn(ex.getMessage(), ex);
      BusinessException businessException = (BusinessException) ex;
      return ExceptionResponse.create(businessException.getCode(), businessException.getMessage());
    } else {
      log.error(ex.getMessage(), ex);
      return ExceptionResponse.create(HttpStatus.INTERNAL_SERVER_ERROR.value(), ex.getMessage());
    }
  }
}

5 演示效果

•定義Controller層

@PostMapping("test/exception")
  public String testException() {
    throw new BusinessException(ErrorEnum.E_20011);
  }

•通過postMan調(diào)用返回結(jié)果為

{ "message": "缺少必填參數(shù)", "code": 20011 }

總結(jié)

以上所述是小編給大家介紹的Spring Boot 如何自定義返回錯(cuò)誤碼錯(cuò)誤信息 ,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • java后臺(tái)實(shí)現(xiàn)支付寶支付接口和支付寶訂單查詢接口(前端為APP)

    java后臺(tái)實(shí)現(xiàn)支付寶支付接口和支付寶訂單查詢接口(前端為APP)

    這篇文章主要介紹了java后臺(tái)實(shí)現(xiàn)支付寶支付接口和支付寶訂單查詢接口(前端為APP),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-08-08
  • windows下jar包開機(jī)自動(dòng)重啟的步驟

    windows下jar包開機(jī)自動(dòng)重啟的步驟

    這篇文章主要給大家介紹了關(guān)于windows下jar包開機(jī)自動(dòng)重啟的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java中的集合工具類Collections詳解

    Java中的集合工具類Collections詳解

    這篇文章主要介紹了Java中的集合工具類Collections詳解,java.utils.Collections是集合工具類,用來對(duì)集合進(jìn)行操作,不是Collection集合的根接口,這個(gè)要區(qū)分開來,需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)經(jīng)典游戲打磚塊游戲的示例代碼

    Java實(shí)現(xiàn)經(jīng)典游戲打磚塊游戲的示例代碼

    這篇文章主要介紹了如何利用Java實(shí)現(xiàn)經(jīng)典的游戲—打磚塊。玩家操作一根螢?zāi)簧纤降摹鞍糇印?,讓一顆不斷彈來彈去的“球”在撞擊作為過關(guān)目標(biāo)消去的“磚塊”的途中不會(huì)落到螢?zāi)坏紫隆8信d趣的小伙伴可以了解一下
    2022-02-02
  • java實(shí)現(xiàn)微博后臺(tái)登錄發(fā)送微博

    java實(shí)現(xiàn)微博后臺(tái)登錄發(fā)送微博

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)微博后臺(tái)登錄發(fā)送微博的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 基于Java回顧之多線程同步的使用詳解

    基于Java回顧之多線程同步的使用詳解

    在這篇文章里,我們關(guān)注線程同步的話題。這是比多線程更復(fù)雜,稍不留意,我們就會(huì)“掉到坑里”,而且和單線程程序不同,多線程的錯(cuò)誤是否每次都出現(xiàn),也是不固定的,這給調(diào)試也帶來了很大的挑戰(zhàn)
    2013-05-05
  • 關(guān)于SpringBoot禁止循環(huán)依賴解說

    關(guān)于SpringBoot禁止循環(huán)依賴解說

    這篇文章主要介紹了關(guān)于SpringBoot禁止循環(huán)依賴解說,Spring的Bean管理,文章圍繞主題展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • java mybatis框架配置詳解

    java mybatis框架配置詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于java mybatis框架配置詳解內(nèi)容,對(duì)此有興趣的朋友們可以參考下。
    2021-02-02
  • 深入理解Java設(shè)計(jì)模式之組合模式

    深入理解Java設(shè)計(jì)模式之組合模式

    這篇文章主要介紹了JAVA設(shè)計(jì)模式之組合模式的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2021-11-11
  • 2019年最新Java學(xué)習(xí)路線圖

    2019年最新Java學(xué)習(xí)路線圖

    不管你是不懂電腦的小白,還是已經(jīng)步入開發(fā)的大牛,這套路線路絕對(duì)不容錯(cuò)過,路線圖的宗旨就是分享,專業(yè),便利,讓喜愛Java的人,都能平等的學(xué)習(xí),感興趣的同學(xué)可以了解一下
    2019-03-03

最新評(píng)論