-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
24 lines (22 loc) · 813 Bytes
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*eslint no-console: 0 */
var err, akme = {
copy: function(obj, map) {
for (var key in map) if (map.hasOwnProperty(key)) obj[key] = map[key];
return obj;
}
};
function MyError(message, code) {
if (code !== undefined) this.code = code;
this.message = code !== undefined ? message +" ("+ code +")" : message;
var er = new Error(this.message);
er.name = this.name; // Improve stack trace message, at least on Chrome/NodeJS.
if (er.stack) this.stack = er.stack; // Not available on MSIE 10-11
}
akme.copy(MyError, {
constructor: Error // super constructor
}).prototype = akme.copy(Object.create(Error.prototype), {
constructor: MyError,
name: "MyError"
});
err = new MyError("Server Error", "500");
console.log(err.name, err.message, err.code, err.stack);