为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

郎朗坤 2023-11-12 22:30:56
当我这样做时,我会得到一个很好的线索,知道它来自哪里console.error('Custom Error')例如:func1();function func1() {  func2();}function func2() {  func3();}function func3() {  console.error('Custom Error');}我得到:我怎样才能在不产生错误的情况下做到这一点,更像是?console.log()
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

您可以使用 console.trace() 而不是 console.error()。

这是您在控制台上看到的:console.trace()

Trace

func3 @ js:24

func2 @ js:19

func1 @ js:15

(anonymous) @ js:12

而这与:console.error()


Custom Error

console.error   @   snippet-javascript-console.min.js?v=1:1

func3   @   js:23

func2   @   js:19

func1   @   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;

}


查看完整回答
反对 回复 2023-11-12
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信