在尝试重复键插入时抛出正确的异常?

时间:2011-07-09 17:38:55

标签: java exception-handling

我反复看到有关避免抛出通用RuntimeException的评论,我试图遵循该指南。

我有一个类,它使用属性设置聚合SortedMap以允许或禁止重复键。我试图找出当不允许重复键并尝试添加一个时应该抛出的异常。

我检查了Java文档中的Exception类,并且没有一个已知的直接后代似乎合适。我是否只是继续创建我自己的EDuplicateMapKey类,并抛出它?如果是这样,我如何避免使用大量的类文件,每个自定义Exception类型一个?

这里被认为是“最佳做法”?

3 个答案:

答案 0 :(得分:7)

创建自己的例外。例如,Java EE有DuplicateKeyException,您可以执行类似于自定义地图的操作。

答案 1 :(得分:5)

  

我是否只是继续创建我自己的EDuplicateMapKey类并抛出它?

当然,是的。如果感觉像是正确的方法,不要害怕创建新的异常类型。如果您不清楚作为作者,这是正确的例外类型,那么程序员使用您的API肯定不会清楚。所以明确它,并创建自己的异常类型。

  

如何避免一大堆类文件,每个自定义异常类型一个?

异常类与任何其他业务逻辑类型没有区别。你不必为你的“普通”代码创建所需数量的类型(至少,我希望你没有),并且在异常类型方面你应该感觉没有区别。它们通常同样重要。

答案 2 :(得分:2)

个人IllegalStateExceptionIllegalArgumentException看起来可以在这里工作,但我也可以看到反对的论点。