error.js 985 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. "use strict";
  2. /**
  3. * Creates a new MongoError
  4. * @class
  5. * @augments Error
  6. * @param {string} message The error message
  7. * @return {MongoError} A cursor instance
  8. */
  9. function MongoError(message) {
  10. this.name = 'MongoError';
  11. this.message = message;
  12. Error.captureStackTrace(this, MongoError);
  13. }
  14. /**
  15. * Creates a new MongoError object
  16. * @class
  17. * @param {object} options The error options
  18. * @return {MongoError} A cursor instance
  19. */
  20. MongoError.create = function(options) {
  21. var err = null;
  22. if(options instanceof Error) {
  23. err = new MongoError(options.message);
  24. err.stack = options.stack;
  25. } else if(typeof options == 'string') {
  26. err = new MongoError(options);
  27. } else {
  28. err = new MongoError(options.message || options.errmsg || options.$err || "n/a");
  29. // Other options
  30. for(var name in options) {
  31. err[name] = options[name];
  32. }
  33. }
  34. return err;
  35. }
  36. // Extend JavaScript error
  37. MongoError.prototype = new Error;
  38. module.exports = MongoError;