根据有效飞镖:
如果您决定重新抛出异常,请更喜欢使用该
rethrow语句而不是使用 抛出相同的异常对象throw。rethrow保留异常的原始堆栈跟踪。throw另一方面,将堆栈跟踪重置为上次抛出的位置。
最大的区别是保留了原始堆栈跟踪。
他们提供了 2 个示例来说明预期用途:
坏的:
try {
somethingRisky();
} catch (e) {
if (!canHandle(e)) throw e;
handle(e);
}
Run Code Online (Sandbox Code Playgroud)
好的:
try {
somethingRisky();
} catch (e) {
if (!canHandle(e)) rethrow;
handle(e);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1075 次 |
| 最近记录: |