no-useless-catch
Disallow unnecessary catch
clauses
✅ Recommended
The "extends": "eslint:recommended"
property in a configuration file enables this rule
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.
Rule Details
This rule reports catch
clauses that only throw
the caught error.
Examples of incorrect code for this rule:
Open in Playground
/*eslint no-useless-catch: "error"*/
try {
doSomethingThatMightThrow();
} catch (e) {
throw e;
}
try {
doSomethingThatMightThrow();
} catch (e) {
throw e;
} finally {
cleanUp();
}
Examples of correct code for this rule:
Open in Playground
/*eslint no-useless-catch: "error"*/
try {
doSomethingThatMightThrow();
} catch (e) {
doSomethingBeforeRethrow();
throw e;
}
try {
doSomethingThatMightThrow();
} catch (e) {
handleError(e);
}
try {
doSomethingThatMightThrow();
} finally {
cleanUp();
}
When Not To Use It
If you don’t want to be notified about unnecessary catch clauses, you can safely disable this rule.
Version
This rule was introduced in ESLint v5.11.0.