[英]Is there inner exception concept in java
.Net的异常可以包含内部异常吗? 我想知道Java是否有类似的东西?
绝对 - 您可以使用Throwable.getCause()
检索内部异常(“原因” Throwable.getCause()
。 要使用cause创建异常,只需将其传递给构造函数即可。 (大多数异常都有一个构造函数接受一个原因,它有意义。)
您可以通过两种方式设置内部异常(AKA是原因)。 如果您自己实例化异常,请将内部异常传递给(外部)异常的构造函数,例如
try {
// some code that throws innerException
} catch (Exception innerException) {
throw new OuterException(innerException);
}
另一方面,如果外部异常没有允许您设置内部异常的构造函数,或者您没有自己实例化外部异常,则可以使用
outerException.initCause(innerException);
从Java 1.4开始, java.lang.Throwable
具有将另一个Throwable
作为参数的Throwable
函数,以及一个返回它的getCause()
方法。 几乎所有标准API中的异常以及其他库中实现的大多数异常都使用此工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.