@mumen/try-catch-alt
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

try-catch-alt

An alternative library for try-catch blocks, helps reduce the code and make it cleaner and more readable using anonymous functions.

Why should use this library?

Instead of doing this (for specific exceptions handling):

try
{ 
    // code that throws an exception
    // this line won't execute
}
catch (CustomException ex)
{
    // special handling for CustomException 
}
catch (Exception ex)
{
   // all others
}

or even this (when you need to continue the execution when exceptions occur):

try
{ 
    // code that throws an exception
}
catch (Exception ex)
{
   // handle
}

try
{ 
    // this code will execute unless the previous catch block 
    // throws an exception (re-throw or new exception) 
}
catch (Exception ex)
{
   // handle
}

You can just do this:

const data = _trySync(() => {
    //do your thing here and return data
})

if (!data.ok){
    console.log("Do you want to continue exectution?");
    return; //if yes
}

Installation

Install with npm

  npm install @mumen/try-catch-alt

API Reference

_try (async)

Parameter Type Description
tryFunction () => Promise<T> function which may cause exception

_tryMany (async)

Parameter Type Description
tryFunction () => Promise<T> function which may cause exception
numberOfTrials number Number of executions before giving the final result

_trySync (sync)

Parameter Type Description
tryFunction () => T function which may cause exception

_trySyncMany (sync)

Parameter Type Description
tryFunction () => T function which may cause exception
numberOfTrials number Number of executions before giving the final result

Usage/Examples

// _try: use this method for ASYNC try-catch, won't re-try on failure

import { _try } from "@mumen/try-catch-alt";

async function getDataExample() {
  const data = await _try(async () => {
    const apiResponse = await fetch(
      ".."
    );
    const json = await apiResponse.json();
    return json;
  });


  if (data.ok)
    console.log(data.result);
  else
    console.log(data.error);

  console.log('Execution continues!')
}

getDataExample();
// _trySync: use this method for SYNC try-catch, won't re-try on failure

import { _trySync } from "@mumen/try-catch-alt";

function doWork() {
  const data = _try(() => {
      // your code goes here

      //return result
  });


  if (data.ok)
    console.log(data.result);
  else
    console.log(data.error);

  console.log('Execution continues!')
}

doWork();
// _tryMany: use this method for ASYNC try-catch, re-try will occur on failure

import { _tryMany } from "@mumen/try-catch-alt";

async function getDataExample() {
  const data = await _tryMany(async () => {
    const apiResponse = await fetch(
      ".."
    );
    const json = await apiResponse.json();
    return json;
  }, 3);


  if (data.ok)
    console.log(data.result);
  else
    console.log(data.error);

  console.log('Execution continues!')
}

getDataExample();
// _tryManySync: use this method for SYNC try-catch, re-try will occur on failure

import { _tryManySync } from "@mumen/try-catch-alt";

function doWork() {
  const data = _tryManySync(() => {
    // your code goes here

    //return result
  }, 3);


  if (data.ok)
    console.log(data.result);
  else
    console.log(data.error);

  console.log('Execution continues!')
}

doWork();

Authors

Package Sidebar

Install

npm i @mumen/try-catch-alt

Weekly Downloads

1

Version

1.0.1

License

ISC

Unpacked Size

20 kB

Total Files

35

Last publish

Collaborators

  • mu2men