java - 出于不同目的重用 Exception 类

标签 java exception

将异常用于与预期目的不同的目的(名称)是否是良好实践?例如,我想要一个类似于“已经存在”的异常,但我发现了异常“EntityExistsException”。这个名字很棒,但似乎是为EntityManager设计的。 。可以使用该类,还是应该创建自己的类?

最佳答案

阅读文档。任何不熟悉您的代码的人都会查看该异常,并且要么了解其文档,要么去阅读它。

在这种情况下,文档说异常(exception)是

thrown by the persistence provider when EntityManager.persist(Object) is called

因此,如果您的代码在其他情况下抛出该错误,那么您的代码与 Java API 不兼容并且存在错误。

我倾向于使用或子类 IllegalStateException对于您的情况,因为这是一个通用异常(exception),被广泛使用,并且“已经存在的事物”的状态属于其规范范围。如果我期望客户端代码将以不同于其他失败状态的方式处理“已存在”状态,那么我将对其进行子类化,否则我不会。

关于java - 出于不同目的重用 Exception 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24581631/

相关文章:

c++ - 异常在 MSVC 中的析构函数中抛出异常

java - Thread.setName(name) 注意事项

java - 在android Activity中找到按钮onclick函数

c# - 永不捕获的异常

java - 如果另一个异常吃掉了它,我应该在顶部异常中保留对原始异常的引用吗?

javascript - js异常位置

java - 在新的 Android Studio 中初始化 Stripe 对象

java - android中的三角形opengl

java - 在客户端上禁用 SelectItem 中的过滤选项

.net - 当它们共享相同的类型时如何区分两个 .NET 异常?