Skip to content

Instantly share code, notes, and snippets.

@subfuzion
Created February 26, 2014 18:54
Show Gist options
  • Select an option

  • Save subfuzion/9235975 to your computer and use it in GitHub Desktop.

Select an option

Save subfuzion/9235975 to your computer and use it in GitHub Desktop.

Revisions

  1. subfuzion created this gist Feb 26, 2014.
    26 changes: 26 additions & 0 deletions error.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    Sometimes you want to wrap error objects with application-specific errors for your stack traces.

    Your custom error constructor:

    ```
    function CustomError(e, extra) {
    Error.call(this);
    Error.captureStackTrace(this, CustomError);
    this.id = e.id;
    this.name = 'CustomError';
    this.message = e.message
    }
    require('util').inherits(CustomError, Error);
    ```

    Example usage:

    function doWork(callback) {
    doErrorProneWork(funtion(err, result) {
    if (err) return callback(new CustomError(err));

    ...
    }
    }