Package Exports
- eslint-plugin-try-catch-failsafe
- eslint-plugin-try-catch-failsafe/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-try-catch-failsafe) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
eslint-plugin-try-catch-failsafe
Make sure to use try-catch to wrap up some dangerous actions!
Installation
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
Usage
Add this plugin to your ESLint configuration.
{
"extends": [
"plugin:try-catch-failsafe/default"
]
}
Rules
try-catch-failsafe/json-parse
- 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.
try-catch-failsafe/new-url
- 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.