Skip to content

noCatchAssign

Diagnostic Category: lint/suspicious/noCatchAssign

Since: v1.0.0

Sources:

Disallow reassigning exceptions in catch clauses.

Assignment to a catch parameter can be misleading and confusing. It is often unintended and indicative of a programmer error.

try {
} catch (e) {
e;
e = 10;
}
code-block.js:5:3 lint/suspicious/noCatchAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Reassigning a catch parameter is confusing.

3 │ } catch (e) {
4 │ e;
> 5 │ e = 10;
^
6 │ }
7 │

The catch parameter is declared here:

1 │ try {
2 │
> 3 │ } catch (e) {
^
4 │ e;
5 │ e = 10;

Use a local variable instead.

try {
} catch (e) {
let e = 10;
e = 100;
}