获取类似 console.error() 的跟踪并生成错误消息 [duplicate]

当我这样做时,我会得到一个很好的线索,知道它来自哪里console.error('Custom Error')


例如:


func1();


function func1() {

  func2();

}


function func2() {

  func3();

}


function func3() {

  console.error('Custom Error');

}

我得到:

https://img1.sycdn.imooc.com/6550e1bb0001786d06490085.jpg

我怎样才能在不产生错误的情况下做到这一点,更像是?console.log()



郎朗坤
浏览 62回答 1
1回答

慕神8447489

您可以使用 console.trace() 而不是 console.error()。这是您在控制台上看到的:console.trace()Tracefunc3 @ js:24func2 @ js:19func1 @ js:15(anonymous) @ js:12而这与:console.error()Custom Errorconsole.error   @   snippet-javascript-console.min.js?v=1:1func3   @   js:23func2   @   js:19func1   @   js:15(anonymous) @   js:12如果要将堆栈跟踪获取到变量中,而不仅仅是记录它,则可以使用 Error.captureStackTrace(targetObject) 或 Error().stack,但两者都是非标准的:func1();function func1() {  func2();}function func2() {  func3();}function func3() {  const fakeErrorObject = {};    Error.captureStackTrace(fakeErrorObject)    const captureStackTraceTrace = fakeErrorObject.stack;  const errorStackTrace = Error('Foo').stack;    console.log(captureStackTraceTrace.replaceAll('at', '👉'));  console.log(errorStackTrace.replaceAll('at', '👉'));}.as-console-wrapper {  max-height: none !important;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript