gpt4 book ai didi

javascript - 是否有任何解决方法可以重新抛出异常并保留 Javascript 中的堆栈跟踪?

转载 作者:数据小太阳 更新时间:2023-10-29 04:44:47 25 4
gpt4 key购买 nike

我知道 Chrome 有一个 known bug在 Javascript 中重新抛出异常时不保留堆栈跟踪。

我在 Chrome 中运行了以下代码:

try {
try {
runCodeThatMayThrowAnException();
} catch (e) {
// I'm handing the exception here (displaying a nice message or whatever)
// Now I want to rethrow the exception
throw (e);
}
} catch (e) {
// The stacktrace was lost here :(
}

有什么方法可以保留堆栈跟踪吗?也许是一个 jQuery 插件?任何解决方法或想法?

最佳答案

在最后的 catch block 中尝试

    throw e.stack;

我指的是最后一个(进入浏览器的那个)。如果您将 try/catch 嵌套得更深,则需要更改之前的抛出。

    function throwError() {
var test = _undefined.propertyAccess;
}
try {
try {
try {
throwError();
} catch (e) {
alert("exception: " + e.stack);
throw e;
}
} catch (e) {
console.log(e.stack);
throw e;
}
} catch (e) {
throw e.stack;
}

多么奇怪的错误。

关于javascript - 是否有任何解决方法可以重新抛出异常并保留 Javascript 中的堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9006490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com