Skip to content
You are currently reading docs for v1.x. Go to the latest docs if you are using newer version.

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();
}
biome.json
{
"linter": {
"rules": {
"complexity": {
"noUselessCatch": "error"
}
}
}
}