mediawiki-extensions-Visual.../modules/ve/ve.Error.js
Trevor Parscal b4de3ead08 Throw ve.Error instead of string literals
Throwing strings is bad because it doesn't include a lot of important
information that an error object does, such as a stack trace or where
the error was actually thrown from.

ve.Error inherits directly from Error. In the future we may create
more specific subclasses and/or do custom stuff.

Some interesting reading on the subject:
* http://www.devthought.com/2011/12/22/a-string-is-not-an-error/

Change-Id: Ib7c568a1dcb98abac44c6c146e84dde5315b2826
2012-08-08 06:19:00 +02:00

39 lines
918 B
JavaScript

/**
* VisualEditor Error class.
*
* @copyright 2011-2012 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/**
* Error.
*
* @class
* @constructor
* @param {String} message Human-readable description of the error
* @param {String} fileName The name of the file containing the code that caused the exception
* @param {Number} lineNumber The line number of the code that caused the exception
*/
ve.Error = function () {
// Inheritance
Error.apply( this, arguments );
};
/* Methods */
/**
* Gets a human-readable description of the error, including the error type.
*
* @method
* @returns {String} Error type and description
*/
ve.Error.prototype.toString = function () {
return this.name + ': ' + this.message;
};
/* Inheritance */
ve.Error.prototype = new Error();
ve.Error.prototype.constructor = ve.Error;
ve.Error.prototype.name = 've.Error';