加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何避免在自定义java异常类中重复

发布时间:2020-05-25 00:09:47 所属栏目:Java 来源:互联网
导读:我喜欢创建Exception类,其名称表示注意和抛出特定于应用程序的问题. 为了定义它们,通常会定义一个新类,其超类是一些异常类型. 由于父Exception类中有多个常见的构造函数,通常子类看起来像这样: package com.example.exception;/** * MyException is thrown w

我喜欢创建Exception类,其名称表示注意和抛出特定于应用程序的问题.

为了定义它们,通常会定义一个新类,其超类是一些异常类型.

由于父Exception类中有多个常见的构造函数,通常子类看起来像这样:

package com.example.exception;

/**
 * MyException is thrown when some application-level expectation is not met.
 */
public class MyException extends Exception {

    public MyException() {
        super();
    }

    public MyException(String message) {
        super(message);
    }

    public MyException(Throwable cause) {
        super(cause);
    }

    public MyException(String message,Throwable cause) {
        super(message,cause);
    }

}

从DRY的角度来看,我发现这种方法很乏味,特别是在定义了Exception层次结构时.

我熟悉像Lombok这样有助于减少常见Java模式重复的工具;是否有任何建议可以解决异常类重复此特定问题的工具?

解决方法

如果您创建“业务”异常,则不应只复制Exception中的所有构造函数.而是创建使用业务对象的异常.例如,如果请求失败并且由业务对象Request建模,则可能会使用单个构造函数创建RequestFailedException:
public RequestFailedException(Request request) {
    super("Request to " + request.getUrl() + " failed.";
}

您甚至可以在字段中存储对Request对象的引用,并提供一个getter,以便处理异常的方法可以获得有关正在发生的事情的更多信息.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读