栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 如何优雅的抛出业务异常

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 如何优雅的抛出业务异常

  记得上学的时候学习英语,每个英语老师说到英语翻译的时候都会说英语翻译要做到“信、达、雅”。如今做了一名程序员竟然体会我还是想用这三种境界来要求自己,恰逢自己现在所做之项目偏业务,代码的优雅显得格外重要。所以我就想写点这方面的东西,今天就先来说说如何优雅的抛出业务异常。代码千千万,只希望对自己和对大家有所帮助。

  针对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 errorCodeMap = new EnumMap(
      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);
  }

  
  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 如何优雅的抛出业务异常的详细内容,更多关于java 抛出业务异常的资料请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/129708.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号