gpt4 book ai didi

java - 如何在没有代码重复的情况下组织异常类?

转载 作者:搜寻专家 更新时间:2023-11-01 02:33:23 27 4
gpt4 key购买 nike

我的包中有许多自定义的 Exception 继承类,它们与它们的基类没有区别。我拥有它们的唯一目的是在引发异常时将一个异常原因与另一个区别开来。这是我的异常类之一的样子:

package com.XXX;
/**
* Thrown when query format is invalid.
*/
public class InvalidFormatException extends Exception {
/**
* Public ctor.
* @param m Supplementary message
*/
public InvalidFormatException(final String m) {
super(m);
}
}

问题是所有类都完全相同,就像双胞胎一样。唯一不同的是他们的名字。我不喜欢这种情况,因为这是明显的代码重复。在其他语言(如 PHP、Python 等)中,我会在运行时动态声明这些类,但据我所知,Java 不允许这样做。有什么解决方法吗?

最佳答案

您可以创建一个通用类,其代码属性可通过 Controller 进行设置。这样你在抛出时只能有一个类和实例。

也就是说,我不同意你说类是双胞胎的说法。它们代表完全不同的功能异常。基于关注点分离模式,当前的实现是正确的。使用我的通用类会在您的类中混淆问题,这应该被禁止。

此外,我看到你继承自 Exception...我不会解释太多,但你应该在你的应用程序中使用 RuntimeException 来处理功能异常。在网上随便看看,有很多关于它的文献。

关于java - 如何在没有代码重复的情况下组织异常类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022431/

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