# nested-error-stacks **Repository Path**: mirrors_floatdrop/nested-error-stacks ## Basic Information - **Project Name**: nested-error-stacks - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-24 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Nested stacktraces for Node.js! =============================== [![Build Status](https://travis-ci.org/mdlavin/nested-error-stacks.svg)](https://travis-ci.org/mdlavin/nested-error-stacks) [![NPM version](https://badge.fury.io/js/nested-error-stacks.svg)](http://badge.fury.io/js/nested-error-stacks) [![Dependency Status](https://david-dm.org/mdlavin/nested-error-stacks.svg)](https://david-dm.org/mdlavin/nested-error-stacks) 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. (/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: ```js 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 recomennded to use explicit names for Error classes. You can do it like this: ```js 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'; ```