如果您throw
使用JavaScript,则抛出的错误通常会传播到window.onerror
处理程序,这会停止进一步执行脚本.
有没有办法从函数中获取堆栈跟踪而不会导致执行暂停?
您也可以创建一个新错误而不抛出它并使用堆栈跟踪
function doSomething() { ... const stackTrace = new Error().stack ... }
抛出错误将暂停堆栈,除非被try / catch捕获。
function getStack() { try { throw new Error(); } catch(e) { return e.stack; } }
从任何函数中调用getStack将从那里打印出堆栈。
请注意,堆栈中的方法名称不受源映射的影响,因此,如果您使用的是缩略代码,则可能仍会得到混淆的名称。