Skip to content

noCatchAssign (since v1.0.0)

Diagnostic Category: lint/suspicious/noCatchAssign

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;
}
suspicious/noCatchAssign.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;
}