OError
Customizable Error using an Object. It is a subclass of Node.js standard Class: Error
, with the overridden behavior when the constructor argument is a plain key-value Object
.
Install
npm install -save oerror
Usage
var OError = ; var err = name: 'ServerError' statusCode: 500 message: 'DB Connection Lost' details: component: 'MongoDB' timeout: 15000 ; /* Type */console; // trueconsole; // true /* Inherited Properties */console; // DB Connection Lostconsole; // ServerErrorconsole;// ServerError: DB Connection Lost// at Object.<anonymous> (/Users/woozyking/proj/personal/oerror/test.js:3:11)// at Module._compile (module.js:413:34)// at Object.Module._extensions..js (module.js:422:10)// at Module.load (module.js:357:32)// at Function.Module._load (module.js:314:12)// at Function.Module.runMain (module.js:447:10)// at startup (node.js:140:18)// at node.js:1001:3 /* Other Properties */console; // 500console; // { component: 'MongoDB', timeout: 15000 }console; // MongoDB
If you get too comfortable with OError
:
Error = ; // USE WITH CAUTION
Since 0.2
you can use the function wrapper if you prefer not to use the new OError
syntax.
var oerror = oerror;var err = ;
Properties
Class: OError
inherits the following standard properties from Error
:
name
- when supplied through the constructor argument, it gets used; otherwise defaults toOError
.message
- this behaves as the standard Error constructor argument, which specifies the error message. Although not required, it is recommended to set it.stack
- see Usage for example. It cannot be overridden even constructor argument contains one.
All other properties that are unowned by Error
(therefore also OError
) type will get copied over, see Usage for example.
Behaviors
Class: OError
new OError([opt])
✓ should create an instance of OError when opt is a plain object.
✓ should return an Error object when opt is an Error object.
✓ should return an OError object when opt is an OError object.
✓ should return an Error object when opt is a string.
✓ should return an OError object when opt is null.
✓ should return an Error object when opt is not a plain object, string, null, or Error (including Error subclasses).
oerror.name
✓ should have the name property default to "OError"
✓ should have the name property set to opt.name value
oerror.message
✓ should have the message property default to ""
✓ should have the message property set to opt.message value
oerror.stack
✓ cannot be overridden by constructor argument opt.stack
✓ should contain <name>: <message> in the first line
oerror.<others>
✓ should copy over all Error unowned properties from opt
Function wrapper: oerror([opt])
✓ should create an instance of OError when opt is a plain object.
✓ should return an Error object when opt is an Error object.
✓ should return an OError object when opt is an OError object.
✓ should return an Error object when opt is a string.
✓ should return an OError object when opt is null.
✓ should return an Error object when opt is not a plain object, string, null, or Error (including Error subclasses).