javascript—如何正确捕获错误并向错误中添加信息

qybjjes1  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(226)

我想向typescript/javascript中的错误对象添加信息。我现在是这样做的:

try {
    // code that might throw code
} catch (e) {
    throw new Error(`Error while processing file ${path}:\n${e}`);
}

但这会从上一个错误中删除信息。java/php都有一个 previous 异常中的参数,以便我可以 Package 错误并保留/扩展原始信息,但在javascript中似乎找不到等效的参数。
我该怎么做?

nc1teljy

nc1teljy1#

所以没有标准的方法。
但是,如果您的目的只是向异常消息添加信息,而不影响错误本身,那么您可以扩展 message 财产

try {
} catch (e) {
    e.message = `File: ${path}\n${e.message}`;
    throw e;
}

这将保留正确的堆栈跟踪,并将像您在chrome或节点控制台上预期的那样显示。
以下是一个例外示例:

Error: File: 6ff6255b-45b5-4895-8d59-50fa60663cfc.json
JSON Schema: schemas/schema.json
- must NOT have additional properties 
    at JsonFs.validate (driver/json-fs.ts:60:19)
    at JsonFs.readSource (driver/json-fs.ts:39:14)
    at async JsonFs.readSourceFile (driver/abstract-fs.ts:82:30)
    at async driver/abstract-fs.ts:46:34

相关问题