在Chrome中,發生異常時,它會將堆棧跟蹤打印到控制檯日誌。這非常有用,但不幸的是,在重新拋出異常的情況下,這會導致問題。JavaScript重新拋出異常保留堆棧跟蹤
} 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;
使異常與同一堆棧跟蹤重新拋出?
的可能重複[我怎樣才能重新引發在Javascript例外,但保留堆棧?](http://stackoverflow.com/questions/3734236/how-can-i-rethrow-an-exception-在JavaScript中但是保留堆棧) – cmroanirgo