Socket
Socket
Sign inDemoInstall

nested-error-stacks

Package Overview
Dependencies
0
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    nested-error-stacks

An Error subclass that will chain nested Errors and dump nested stacktraces


Version published
Weekly downloads
3M
decreased by-2.33%
Maintainers
1
Install size
6.21 kB
Created
Weekly downloads
 

Package description

What is nested-error-stacks?

The nested-error-stacks npm package is used to create Error objects in Node.js that can encapsulate and display a stack trace from another error. This is useful for debugging and error handling when you want to preserve the original error context while adding additional information or handling an error at a higher level in your application.

What are nested-error-stacks's main functionalities?

Creating nested errors

This feature allows developers to create a new error that includes the stack trace of a previous error. The code sample demonstrates how to catch an error and throw a new NestedError that includes the original error's stack trace.

const NestedError = require('nested-error-stacks');

function doSomethingRisky() {
  try {
    // Code that might throw an error
  } catch (error) {
    throw new NestedError('An error occurred in doSomethingRisky', error);
  }
}

Other packages similar to nested-error-stacks

Readme

Source

Nested stacktraces for Node.js!

Build Status NPM version

With this module, you can wrap a caught exception with extra context for better debugging. For example, a network error's stack would normally look like this:

Error: connect ECONNREFUSED
    at errnoException (net.js:904:11)
    at Object.afterConnect [as oncomplete] (net.js:895:19)

Using this module, you can wrap the Error with more context to get a stack that looks like this:

NestedError: Failed to communicate with localhost:8080
    at Socket.<anonymous> (/Users/mattlavin/Projects/nested-stacks/demo.js:6:18)
    at Socket.EventEmitter.emit (events.js:95:17)
    at net.js:440:14
    at process._tickCallback (node.js:415:13)
Caused By: Error: connect ECONNREFUSED
    at errnoException (net.js:904:11)
    at Object.afterConnect [as oncomplete] (net.js:895:19)

How to wrap errors

Here is an example program that uses this module to add more context to errors:

var NestedError = require('nested-error-stacks');
var net = require('net');
    
var client = net.connect({port: 8080});
client.on('error', function (err) {
    var newErr = new NestedError("Failed to communicate with localhost:8080", err);
    console.log(newErr.stack);
});

How to inherit

It is recommended to use explicit names for Error classes. You can do it like this:

var util = require('util');
var NestedError = require('nested-error-stacks');

function MyError(message, nested) {
    NestedError.call(this, message, nested);
}

util.inherits(MyError, NestedError);
MyError.prototype.name = 'MyError';

Keywords

FAQs

Last updated on 28 Mar 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc