溫馨提示×

溫馨提示×

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

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

怎么在Java項目中拋出業務異常

發布時間:2020-12-24 15:59:36 來源:億速云 閱讀:277 作者:Leah 欄目:開發技術

這篇文章給大家介紹怎么在Java項目中拋出業務異常,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

首先,我們定義一個異常編碼接口

 public interface IErrorCode {
   public String value();
 }

重點來了,我們去實現這個接口

import java.util.EnumMap;

import com.test.IErrorCode;

public enum MyBusinessErrorCode implements IErrorCode {

  /**
   * 角色不存在或已被刪除
   */
  ERR_MODEL_001,
  /**
   * 角色編碼已存在
   */
  ERR_MODEL_002;

  private static EnumMap<MyBusinessErrorCode, String> errorCodeMap = new EnumMap<MyBusinessErrorCode, String>(
      MyBusinessErrorCode.class);

  static {
    errorCodeMap.put(ERR_MODEL_001, "角色不存在!");
    errorCodeMap.put(ERR_MODEL_002, "角色編碼已存在!");
  }

  public String value() {
    return errorCodeMap.get(this);
  }
}

下面我們來說說這段代碼好在哪里,

  • 統一定義異常提示,易于維護,易于國際化配置化。

  • 采用枚舉Map運行效率更高。

  • 代碼邏輯清晰,更容易上手,更容易統一風格。

那么如何在代碼中去使用呢?

首先,創建一個創建異常的工具類

public class ExceptionUtil {

  /**
   * 獲取業務異常類
   */
  public static BusinessException CreateBusinessException(
      IErrorCode code) {
    return new BusinessException(code);
  }

  /**
   * 獲取帶數據格式化的業務異常類
   *
   * @param code
   */
  public static BusinessException CreateFormatedBusinessException(BusinessErrorCode code, Object ... object){
    String str = code.value();
    str = String.format(str, object);
    return new BusinessException(code.name(), str, "");
  }

}

在對應的業務方法捕獲并處理異常

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date;
    try {
      // 申請時間
      date = sdf.parse(form.getApplyDateView());
    } catch (ParseException e) {
      throw ExceptionUtil.CreateBusinessException(MyBusinessErrorCode.ERR_RBM_005);
    }

關于怎么在Java項目中拋出業務異常就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女