如何避免自定义Java异常类中的重复

我喜欢创建Exception类,这些类的名称表示应用程序特定问题被注意和抛出。

为了定义它们,通常定义一个新的class ,它的超类是一些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,以便处理该异常的方法可以获取有关正在发生的事情的更多信息。

链接地址: http://www.djcxy.com/p/86655.html

上一篇: How to avoid repetition within custom java exception classes

下一篇: Is there an interface in C# for interval