有什么区别Exception Translation
and Exception Chaining
在Java中?
根据约书亚·布洛赫 in 有效的Java -
异常翻译
较高层应捕获较低级别的异常
并在其位置抛出可以用以下方式解释的异常
更高层次的抽象。
try {
// Use lower-level abstraction to do our bidding
...
} catch(LowerLevelException e) {
throw new HigherLevelException(...);
}
异常链接
它是异常翻译的特殊形式。
如果较低级别的异常可能对某人调试有帮助
导致更高级别异常的问题。较低级别的异常(原因)被传递给较高级别的异常,后者提供了一个
访问器方法 (Throwable.getCause) 来检索较低级别的异常:
try {
... // Use lower-level abstraction to do our bidding
} catch (LowerLevelException cause) {
throw new HigherLevelException(cause);
}
更高级别异常的构造函数将原因传递给链感知
超类构造函数,因此它最终传递给 Throwable 的链式构造函数之一,例如 Throwable(Throwable):
// Exception with chaining-aware constructor
class HigherLevelException extends Exception {
HigherLevelException(Throwable cause) {
super(cause);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)