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

前端之家收集整理的这篇文章主要介绍了如何避免在自定义java异常类中重复前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我喜欢创建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,以便处理异常的方法可以获得有关正在发生的事情的更多信息.

猜你在找的Java相关文章