Package Exports
- no-try
- no-try/index.esm.js
- no-try/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 (no-try) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
🚀 No-Try 🚀
Clean up your code base by removing those ugly try-catch-finally blocks!
😍 About
Working in a code base where you can expect methods to throw
can lead to situations where your logic is wrapped in try-catch
blocks. It also leads to other code design problems. 🤢
no-try
tackles this by removing the try-catch
to an external method, whilst allowing the flexibility of handling the error thrown appropriately and getting access to the return value of the method that will throw. 🤘🤘
🔧 Installation
npm install --save no-try
🎸 Usage
First we need to set up our import
JavaScript (all)
const useTry = require("no-try").useTry;
const useTryAsync = require("no-try").useTryAsync;
TypeScript or ES6+
import { useTry, useTryAsync } from "no-try";
Now let's use it
// Without a custom error handler
const [error, result] = useTry(() => myThrowableMethod());
// With a custom error handler
const [err, res] = useTry(
() => myThrowableMethod(),
error => {
console.log(error);
}
);
// Handle methods that return a Promise without a custom error handler
const [err2, res2] = await useTryAsync(() => myAsyncThrowableMethod());
// Handle methods that return a Promise with a custom error handler
const [err3, res3] = await useTryAsync(
() => myAsyncThrowableMethod(),
error => {
console.log(error);
}
);
// Use result
if (error || err || err2 || err3) {
// Show error alert
}
sendMyResultToMethod(result);