0

Java 默认包中是否存在未经检查的通用异常,它也代表只读异常情况?如果不是,最好的替代例外是什么?

我的问题:我使用的 API 中的方法声明了自定义检查ReadOnlyException。我想通过重新抛出它来处理这个问题(如果发生这种情况,它是编码错误,如果它正确,我的代码应该保证不会发生)包装在一些未经检查的RuntimeException类型中。我不想为此编写另一个Exception课程。

是否有 Java 代码附带的各种良好资源Exception以及可以在哪些情况下使用它们(因为我经常面临两难境地 - 编写自定义Exception或使用现有的)?

4

3 回答 3

1

UnsupportedOperationException如果数据真的是只读的,我认为是最合适的。

IllegalStateException如果数据可以从可写切换到只读。(如果没有“转义”初始化代码,则初始化阶段不计算在内。)

于 2013-09-13T08:27:36.967 回答
0

这里有一个很好的 Java 异常列表。多年来,我一直使用此页面作为参考。

也许EOFException对你有用。

于 2013-09-13T08:34:07.783 回答
-2

如果调用者可以处理此异常,您可以盲目地重新抛出异常

// throw a checked exception without the compiler knowing. 
Thread.currentThread().stop(checkedException);

这仍然允许嵌套调用者捕获原始异常,但您不必一直声明检查的异常。

于 2013-09-13T08:31:32.987 回答