Skip to content
← Back to rules

eslint/preserve-caught-error Suspicious

🛠️ An auto-fix is available for this rule for some violations.

作用

要求在 catch 块中重新抛出错误时,使用 'cause' 属性保留原始错误。

为什么这很糟糕?

在不保留原始错误的情况下重新抛出错误,会丢失重要的调试信息,并且使追踪问题根本原因更加困难。

示例

以下是此规则的错误代码示例:

js
try {
  doSomething();
} catch (err) {
  throw new Error("Something failed");
}

以下是此规则的正确代码示例:

js
try {
  doSomething();
} catch (err) {
  throw new Error("Something failed", { cause: err });
}

配置

此规则接受一个包含以下属性的配置对象:

requireCatchParameter

type: boolean

default: false

设置为 true 时,要求 catch 子句始终带有参数。

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "preserve-caught-error": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "preserve-caught-error": "error",
  },
});
bash
oxlint --deny preserve-caught-error

版本

此规则于 v1.16.0 中添加。

参考资料