在Chrome中,当发生异常时,它会在控制台日志中打印堆栈跟踪信息。这非常有用,但不幸的是,在重新抛出异常的情况下,会导致问题。
有没有一种方法可以改变
} catch (e) {
if (foo(e)) {
// handle the exception
} else {
// The stack traces points here
throw e;
}
}
很不幸,如果异常来自事件处理程序,以下代码在 jQuery.js
中会导致所有异常出现此问题。
try {
while( callbacks[ 0 ] ) {
callbacks.shift().apply( context, args );
}
}
// We have to add a catch block for
// IE prior to 8 or else the finally
// block will never get executed
catch (e) {
throw e;
}
finally {
fired = [ context, args ];
firing = 0;
}
有没有一种方法可以改变
throw e;
,使得异常可以使用原来的堆栈信息再次抛出?