custom-verror

Simple class extending VError for easy custom error creation


License
MIT
Install
npm install custom-verror@0.1.0

Documentation

Custom VError

Build Status

Simple class extending VError for easy custom error creation.

Usage

Here is the basic usage. For more use cases, see the tests.

1. Define your error

UserNotAllowedError.js

'use strict';

const CustomVError = require('custom-verror');

// Replace UserNotAllowedError with your custom error name
module.exports = class UserNotAllowedError extends CustomVError {
	constructor(...args) {
		super(...args);
		// Provide a default message
		this.message = this.message || 'User is not allowed to perform this action';
	}
};

2. Throw your error

const UserNotAllowedError = require('./UserNotAllowedError');

function performAction() {
	if (!isAllowed) {
		throw new UserNotAllowedError({
			// You can provide some error metadata. This will be appended to the message
			info: {
				user_id: user._id
			}
		})
	}
}

3. Catch your error

try {
	performAction();
} catch (ex) {
	if (ex instanceof UserNotAllowedError) {
		numberOfTimesUsersTriedToDoSomethingTheyWerentSupposedTo++;
		// This will log the default message and the metadata in following format:
		// "User is not allowed to perform this action user_id=FOO"
		console.log(ex);
	}
}