自定义异常类 - 从Exception或Thowable扩展?

Jay*_*Jay 17 java exception-handling

我正在为我的应用程序设计一个自定义的Exception类.我有一个非常基本的问题.我应该从Exception类还是Thowable类扩展?有什么好处?

我打算从底层层中抛出它并在顶层类中捕获它.它会影响我使用Thowable over Exception的决定吗?抓住Thowable是否从根本上说是正确的?

我在这个论坛中经历过其他一些话题.他们谈论在抛出堆栈跟踪时保持堆栈跟踪而没有异常等等.我理解有人说(这里)Thowable是Exception的超级类,我们不应该使用它.但是其他人(这里)说Exception是针对"例外"的案例.

这个问题相当于讨论一个人如何比其他人更好而不是问如何.

Ost*_*siv 24

Throwable 是一个适用于所有不良情况的类,可能出现:错误和异常.

Error是什么东西,你不能处理所有:OutOfMemoryError,VirtualMachineError,等.

Exception特殊情况.

例外有两种:

  1. RuntimeException秒.

    这些的,你是不知道的:NullPointerException,ClassCastException等等.

  2. Checked 例外.

    这些是您的代码知道的异常,应该明确地捕获(... throws MyException):IOExceptions等.

如果你想要你的代码的用户,明确地处理一些特殊情况,那么扩展是好的Exception,而不是RuntimeException.没有必要延长Throwable.