YError
Better errors for your NodeJS code.
Usage
First, require me where you could throw errors:
var YError = require('yerror');
Then, emit errors with a bonus: parameters!
function doSomething(pay, action) {
if(parseInt(pay, 10) !== pay) {
throw new YError('E_BAD_PAY', pay, action);
}
}
doSomething('nuts', 'code');
You don't have to use constant like error messages, we use this convention
mainly for i18n reasons.
Also, you could want to wrap errors and keep a valuable stack trace:
function doSomethingAsync(pay, action) {
return new Promise(function(resolve, reject) {
try {
doSomething(pay, action);
resolve();
} catch(err) {
reject(YError.bump(err));
}
});
}
doSomethingAsync('nuts', 'code')
.catch(function(err) {
console.log(err.stack);
});
API
YError(msg:String, ...args:Mixed):Error
Creates a new YError with msg
as a message and args
as debug values.
YError.wrap(err:Error, msg:String, ...args:Mixed):Error
Wraps any error and output a YError with msg
as its message and args
as
debug values.
YError.cast(err:Error, msg:String, ...args:Mixed):Error
Return YError as is or wraps any other error and output a YError with msg
as
its message and args
as debug values.
YError.bump(err:Error, fallbackMsg:String, ...fallbackArgs:Mixed):Error
Same than YError.wrap()
but preserves the message and the debug values of the
YError errors.
Stats