Java中是否存在内部异常概念
.Net 的异常可以包含内部异常吗?我想知道Java是否有类似的东西?
绝对 - 您可以使用Stormable.getCause()
检索内部异常(“原因”)。若要创建具有原因的异常,只需将其传递到构造函数中即可。(大多数例外都有一个构造函数接受原因,如果它有意义。
您可以通过两种方式设置内部异常(也称为原因)。如果您要自己实例化异常,请将内部异常传递给(外部)异常的构造函数,例如
try {
// some code that throws innerException
} catch (Exception innerException) {
throw new OuterException(innerException);
}
另一方面,如果外部异常没有允许您设置内部异常的构造函数,或者您没有自己实例化外部异常,则可以使用
outerException.initCause(innerException);