javascript - 来自错误的浏览器`console.error`堆栈跟踪,而不是调用console.error的位置?
问题描述
我console.error
在 Chrome 开发工具中使用来显示错误。它显示的堆栈跟踪似乎是console.error
被调用的点,而不是error.stack
我传递给它的错误的属性。可以理解,因为它不知道对象是堆栈属性的错误。但如果可以的话,我想让它工作;有什么方法可以console.error
打印我传递给它的堆栈跟踪(以它使用的漂亮的折叠但可扩展的形式),而不是调用点?
例子:
function err() {
throw new Error('hi there')
}
function f() {
try {
err()
} catch (e) {
console.error(e)
}
}
将堆栈打印在f()
,而不是err()
。是否有console.error
允许传入堆栈的变体形式?
需要明确的是,打印了两个堆栈:第一个,红色,是error.stack
. 第二个,当您单击左侧显示三角形时出现,来自console.error()
(或者console.trace()
,它们是相同的)。这就是我的意思:
缩进的行是消息 ( err.toString()
) 的一部分。当您单击“错误:”旁边左上角的显示三角形时,会看到最后两行。最后一个堆栈是我想要修复的。如您所见,它位于错误的行,并且完全省略了“err”函数,因为它只是调用点的堆栈console.error()
。
解决方案
推荐阅读
- mysql - 在 SQL 查询中为 Haversine 公式添加更多条件
- c++ - 如何在 C++ 中进行剧院座位预订?
- c# - 此上下文错误中仅支持原始类型或枚举类型
- reactjs - 向 MongoDB 添加元素后视图未更新
- laravel - NextJS api cookie 未在响应标头中设置
- swift - Swift4,后继者()
- css - 如何在 2 列布局中先填充右列,然后再填充左列
- cognos - 如何在 Cognos 11 中获得平均时间
- c# - 如何防止 C# 列表框中的向下按钮?
- ios - iOS 应用程序在设备上签名和安装后崩溃:DYLD,未找到依赖 dylib '@rpath/LegacyDatabase.framework/LegacyDatabase'