我最近注意到 Exception
有几个构造函数将 Throwable
作为参数。 Throwable
有两个子类,Error
和 Exception
,通常所有文档都指示您不应 try catch 或处理 Error
。因此,我很好奇为什么 Exception
将 Throwable
作为构造函数参数而不是 Exception
。这意味着 Exception
可以用 Error
作为其原因创建,并且可以由应用程序处理。为什么会这样?
自定义Exception
类是否应该只提供以Exception
为参数的构造函数?
最佳答案
我想这主要是因为:
不建议处理
错误
,但不禁止。无论如何,对接口(interface)进行编程是一个很好的做法,因此参数类型应该通过将其作为根接口(interface)
<Throwable
来支持最广泛的类型。
关于java - 为什么Exception将Throwable作为构造函数参数而不是Exception?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034506/