Clean up your code base by removing those ugly try-catch-finally blocks!
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. π€π€
npm install --save no-try
First we need to set up our import
const useTry = require("no-try").useTry;
const useTryAsync = require("no-try").useTryAsync;
import { useTry, useTryAsync } from "no-try";
// 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);