【发布时间】:2023-03-31 03:52:02
【问题描述】:
我想向 typescript/javascript 中的错误对象添加信息。我目前是这样做的:
try {
// code that might throw code
} catch (e) {
throw new Error(`Error while processing file ${path}:\n${e}`);
}
但这会删除上一个错误中的信息。
Java/PHP 在异常中都有一个 previous 参数,因此我可以包装错误并保留/扩展原始信息,但我似乎无法在 JavaScript 中找到等价物。
我该怎么做?
【问题讨论】:
-
你试过
console.log(new Error().stack)吗? -
你可以做
let error = new Error(...etc...); error.previous = e; throw error; -
扩展 Error 类并根据您的需要生成自定义错误。
-
这些解决方案是定制的。我正在寻找标准的最佳实践。向错误添加属性不会让 chrome/node/deno 调试工具理解它。
-
没有内置解决方案developer.mozilla.org/ru/docs/Web/JavaScript/Reference/… 另一个选择是将原始错误的
stack属性复制到新创建的
标签: javascript typescript exception