gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:29:56 24 4
gpt4 key购买 nike

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

要定义它们,通常会定义一个新的,其父类(super class)是某种Exception 类型。

由于Exception父类有多个公共(public)构造函数,一般子类看起来是这样的:

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 - 如何避免自定义 Java 异常类中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31436499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com