Skip to content
← Back to rules

eslint/preserve-caught-error Suspicious

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

何をするか

キャッチブロック内でエラーを再スローする場合、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 に設定された場合、キャッチ句は常にパラメータを持たなければならないと要求します。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、以下のように使用できます:

json
{
  "rules": {
    "preserve-caught-error": "error"
  }
}
bash
oxlint --deny preserve-caught-error

参照