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

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

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

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

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

nc1teljy

nc1teljy1#

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

  1. try {
  2. } catch (e) {
  3. e.message = `File: ${path}\n${e.message}`;
  4. throw e;
  5. }

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

  1. Error: File: 6ff6255b-45b5-4895-8d59-50fa60663cfc.json
  2. JSON Schema: schemas/schema.json
  3. - must NOT have additional properties
  4. at JsonFs.validate (driver/json-fs.ts:60:19)
  5. at JsonFs.readSource (driver/json-fs.ts:39:14)
  6. at async JsonFs.readSourceFile (driver/abstract-fs.ts:82:30)
  7. at async driver/abstract-fs.ts:46:34
展开查看全部

相关问题