当前位置:  开发笔记 > 编程语言 > 正文

如何在不停止脚本的情况下获取JS堆栈跟踪?

如何解决《如何在不停止脚本的情况下获取JS堆栈跟踪?》经验,为你挑选了2个好方法。

如果您throw使用JavaScript,则抛出的错误通常会传播到window.onerror处理程序,这会停止进一步执行脚本.

有没有办法从函数中获取堆栈跟踪而不会导致执行暂停?



1> 小智..:

您也可以创建一个新错误而不抛出它并使用堆栈跟踪

function doSomething() {
    ...
    const stackTrace = new Error().stack
    ...
} 



2> 3stacks..:

抛出错误将暂停堆栈,除非被try / catch捕获。

function getStack() {
    try {
        throw new Error();
    } catch(e) {
        return e.stack;
    }
}

从任何函数中调用getStack将从那里打印出堆栈。

请注意,堆栈中的方法名称不受源映射的影响,因此,如果您使用的是缩略代码,则可能仍会得到混淆的名称。

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有