跳转到内容

noUselessCatch

Diagnostic Category: lint/complexity/noUselessCatch

Since: v1.0.0

Sources:

Disallow unnecessary catch clauses.

A catch clause that only rethrows the original error is redundant, and has no effect on the runtime behavior of the program. These redundant clauses can be a source of confusion and code bloat, so it’s better to disallow these unnecessary catch clauses.

try {
doSomething();
} catch(e) {
throw e;
}
code-block.js:4:5 lint/complexity/noUselessCatch ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

The catch clause that only rethrows the original error is useless.

2 │ doSomething();
3 │ } catch(e) {
> 4 │ throw e;
^^^^^^^^
5 │ }
6 │

An unnecessary catch clause can be confusing.

try {
doSomething();
} catch(e) {
throw e;
} finally {
doCleanUp();
}
code-block.js:4:5 lint/complexity/noUselessCatch  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

The catch clause that only rethrows the original error is useless.

2 │ doSomething();
3 │ } catch(e) {
> 4 │ throw e;
^^^^^^^^
5 │ } finally {
6 │ doCleanUp();

An unnecessary catch clause can be confusing.

Unsafe fix: Remove the catch clause.

1 1 try {
2 2 doSomething();
3 - }·catch(e)·{
4 - ····throw·e;
5 - }·finally·{
3+ }·finally·{
6 4 doCleanUp();
7 5 }

try {
doSomething();
} catch(e) {
doSomethingWhenCatch();
throw e;
}
try {
doSomething();
} catch(e) {
handleError(e);
}
try {
doSomething();
} finally {
doCleanUp();
}