Skip to content
← Back to rules

eslint/no-ex-assign Correctness

This rule is turned on by default.

作用

禁止在 catch 子句中重新赋值异常。

为什么这很糟糕?

如果 try 语句中的 catch 子句意外地 (或故意地)给异常参数赋予另一个值, 从那一刻起就无法再引用该错误。 由于没有 arguments 对象来提供访问这些数据的其他方式, 对该参数的赋值会造成彻底破坏。

示例

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

javascript
try {
  // 代码
} catch (e) {
  e = 10;
}

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

javascript
try {
  // 代码
} catch (e) {
  let val = 10;
}

如何使用

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

json
{
  "rules": {
    "no-ex-assign": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "no-ex-assign": "error",
  },
});
bash
oxlint --deny no-ex-assign

版本

此规则在 v0.0.4 中添加。

参考资料