Skip to content

Latest commit

 

History

History
72 lines (52 loc) · 2.11 KB

README.md

File metadata and controls

72 lines (52 loc) · 2.11 KB

🚀 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);