Make sure to use try-catch to wrap up some dangerous actions!
Use package manager to install this plugin.
npm install --save-dev eslint-plugin-try-catch-failsafe
yarn add -D eslint-plugin-try-catch-failsafe
pnpm add -D eslint-plugin-try-catch-failsafe
Add this plugin to your ESLint configuration.
{
"extends": [
"plugin:try-catch-failsafe/default"
]
}
- Default:
error
- Fixable:
false
Make sure to use try-catch to wrap up JSON.parse
. Notice that the JSON.parse
in catch
or finally
block may also throw an error in JavaScript, so we should wrap them up too.
// ❌ Error
JSON.parse('{"foo": "bar"}');
// ❌ Error
try {
// some code that may throw an error
} catch (e) {
JSON.parse('{"foo": "bar"}');
}
// ❌ Error
try {
// some code that may throw an error
} finally {
JSON.parse('{"foo": "bar"}');
}
// ✅ OK
try {
JSON.parse('{"foo": "bar"}');
} catch (e) {
console.error(e);
}
// ✅ OK
try {
// some code that may throw an error
} finally {
try {
JSON.parse('{"foo": "bar"}');
} finally {}
}
If you are confident that the JSON.parse
will not throw an error, you can disable this rule.
- Default:
error
- Fixable:
false
Make sure to use try-catch to wrap up new URL()
. Notice that the new URL()
in catch
or finally
block may also throw an error in JavaScript, so we should wrap them up too.
// ❌ Error
new URL('');
// ❌ Error
try {
// some code that may throw an error
} catch (e) {
new URL('');
}
// ❌ Error
try {
// some code that may throw an error
} finally {
new URL('');
}
// ✅ OK
try {
new URL('');
} catch (e) {
console.error(e);
}
// ✅ OK
try {
// some code that may throw an error
} finally {
try {
new URL('');
} finally {}
}
If you are confident that the new URL()
will not throw an error, you can disable this rule.