-1

我认为我们通常只扩展 Exception 类,因为我们不想打扰是否应该检查或取消检查异常。我对吗?

我问了另一个与此相关的问题,这里是我的问题的链接和我得到的答案https://stackoverflow.com/questions/14169866/while-creating-my-own-exception-when-should-i-extend- exception-class-and-when-sh 但是我仍然有一个困惑,即我认为我们通常只扩展 Exception 类,因为我们不想打扰是否应该检查或取消检查异常。我对吗?

4

2 回答 2

2

是的,扩展 Exception 而不是 RuntimeException 的唯一原因是检查它。

在某些特殊情况下,您确实想要抛出未经检查的异常,但大多数情况下,当您抛出异常时,您会这样做,因为您希望调用方法能够在抛出异常时恢复,因此您几乎总是希望使用检查异常。很多时候,您还使用自己的异常来包装程序中较低级别的异常,以实现更松散的耦合,即将 SQLException 转换为自定义 DatastoreException,以便您以后可以将 SQL 服务器换成另一种技术。

所以我们扩展 Exception 以使其检查,但我不必认为您应该盲目地始终扩展 Exception,而是考虑您需要的异常是否可能是 RuntimeException。

于 2013-01-27T09:07:26.853 回答
0

如果您查看当今使用的一些框架,例如 Spring,您会发现它提倡使用运行时异常。通常,当捕获某个异常对调用方没有意义时,您将使用运行时异常,因为它们对该异常无能为力。因此,如果呼叫方需要,您可以自行决定处理它。但是,如果您确实使用了 Exception 类而不是 RuntimeException 类,那么即使它们不需要,调用方也需要处理这些异常,因为按照规范,这些异常被归类为受检异常。

于 2013-01-27T14:26:10.873 回答