java - 为什么Exception将Throwable作为构造函数参数而不是Exception?

标签 java constructor exception-handling class-design

我最近注意到 Exception 有几个构造函数将 Throwable 作为参数。 Throwable 有两个子类,ErrorException,通常所有文档都指示您不应 try catch 或处理 Error。因此,我很好奇为什么 ExceptionThrowable 作为构造函数参数而不是 Exception。这意味着 Exception 可以用 Error 作为其原因创建,并且可以由应用程序处理。为什么会这样?

自定义Exception类是否应该只提供以Exception为参数的构造函数?

最佳答案

我想这主要是因为:

  1. 不建议处理错误,但不禁止

  2. 无论如何,对接口(interface)进行编程是一个很好的做法,因此参数类型应该通过将其作为根接口(interface) Throwable 来支持最广泛的类型。

    <

关于java - 为什么Exception将Throwable作为构造函数参数而不是Exception?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034506/

相关文章:

java - 在 Java 中使用 scala 列表和枚举

c# - Ioc 中繁忙的构造函数——它们是代码的味道吗?

java - Go 的等价于 'throws' 的子句是什么?

java - 在 Java 中伪造堆栈跟踪

java - Spring 。异常翻译如何工作?

java - StringBuilder 与绳索

java - 如何在 p :dataGrid using p:graphicImage 中显示图像

类型参数化抽象类的 C# 构造函数

java - 从 java 调用 Google Cloud Run

gcc - 不执行共享库构造函数