index.js
910 字节
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var inherits = require('inherits');
var NestedError = function (message, nested) {
this.nested = nested;
Error.captureStackTrace(this, this.constructor);
var oldStackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack');
if (typeof message !== 'undefined') {
Object.defineProperty(this, 'message', {
value: message,
writable: true,
enumerable: false,
configurable: true
});
}
Object.defineProperties(this, {
stack: {
get: function () {
var stack = oldStackDescriptor.get.call(this);
if (this.nested) {
stack += '\nCaused By: ' + this.nested.stack;
}
return stack;
}
}
});
};
inherits(NestedError, Error);
NestedError.prototype.name = 'NestedError';
module.exports = NestedError;