You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Improve error handling
Added individual error classes Don't silently fail for commands without callback from now on General polishing (e.g. better error messages) Fix typos
This commit is contained in:
78
lib/customErrors.js
Normal file
78
lib/customErrors.js
Normal file
@@ -0,0 +1,78 @@
|
||||
'use strict';
|
||||
|
||||
var util = require('util');
|
||||
|
||||
function AbortError (obj) {
|
||||
Error.captureStackTrace(this, this.constructor);
|
||||
var message;
|
||||
Object.defineProperty(this, 'name', {
|
||||
get: function () {
|
||||
return this.constructor.name;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, 'message', {
|
||||
get: function () {
|
||||
return message;
|
||||
},
|
||||
set: function (msg) {
|
||||
message = msg;
|
||||
}
|
||||
});
|
||||
for (var keys = Object.keys(obj), key = keys.pop(); key; key = keys.pop()) {
|
||||
this[key] = obj[key];
|
||||
}
|
||||
// Explicitly add the message
|
||||
// If the obj is a error itself, the message is not enumerable
|
||||
this.message = obj.message;
|
||||
}
|
||||
|
||||
function ReplyError (obj) {
|
||||
Error.captureStackTrace(this, this.constructor);
|
||||
var tmp;
|
||||
Object.defineProperty(this, 'name', {
|
||||
get: function () {
|
||||
return this.constructor.name;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, 'message', {
|
||||
get: function () {
|
||||
return tmp;
|
||||
},
|
||||
set: function (msg) {
|
||||
tmp = msg;
|
||||
}
|
||||
});
|
||||
this.message = obj.message;
|
||||
}
|
||||
|
||||
function AggregateError (obj) {
|
||||
Error.captureStackTrace(this, this.constructor);
|
||||
var tmp;
|
||||
Object.defineProperty(this, 'name', {
|
||||
get: function () {
|
||||
return this.constructor.name;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, 'message', {
|
||||
get: function () {
|
||||
return tmp;
|
||||
},
|
||||
set: function (msg) {
|
||||
tmp = msg;
|
||||
}
|
||||
});
|
||||
for (var keys = Object.keys(obj), key = keys.pop(); key; key = keys.pop()) {
|
||||
this[key] = obj[key];
|
||||
}
|
||||
this.message = obj.message;
|
||||
}
|
||||
|
||||
util.inherits(ReplyError, Error);
|
||||
util.inherits(AbortError, Error);
|
||||
util.inherits(AggregateError, AbortError);
|
||||
|
||||
module.exports = {
|
||||
ReplyError: ReplyError,
|
||||
AbortError: AbortError,
|
||||
AggregateError: AggregateError
|
||||
};
|
Reference in New Issue
Block a user