Java 如何优雅的抛出业务异常
程序员文章站
2022-03-15 08:21:38
记得上学的时候学习英语,每个英语老师说到英语翻译的时候都会说英语翻译要做到“信、达、雅”。如今做了一名程序员竟然体会我还是想用这三种境界来要求自己,恰逢自己现在所做之项目偏业务,代码的优雅显得格外重要...
记得上学的时候学习英语,每个英语老师说到英语翻译的时候都会说英语翻译要做到“信、达、雅”。如今做了一名程序员竟然体会我还是想用这三种境界来要求自己,恰逢自己现在所做之项目偏业务,代码的优雅显得格外重要。所以我就想写点这方面的东西,今天就先来说说如何优雅的抛出业务异常。代码千千万,只希望对自己和对大家有所帮助。
针对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 如何优雅的抛出业务异常的详细内容,更多关于java 抛出业务异常的资料请关注其它相关文章!
推荐阅读
-
SpringBoot如何优雅的处理全局异常
-
java中如何靠着throw抛出一个异常来停止线程
-
java中如何能知道应该捕获什么样的异常?举例
-
java中给出一个子线程如何捕获主线程异常的例子
-
在Java8中如何风骚走位的避开空指针异常
-
try{}catch的隐藏(如何优雅的实现异常块)
-
调用远程主机上的 RMI 服务时抛出 java.rmi.ConnectException: Connection refused to host: 127.0.0.1 异常原因及解决方案
-
Java连载65-自定义手动抛出异常、子类的异常范围、数组初探
-
Java简化Oracle存储过程,触发器抛出的异常信息(介绍一个简化异常的方法)
-
启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法