Revision: 24339
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 26, 2010 15:50 by johnloy
Initial Code
function ErrorConstructor(constructorName) {
var errorConstructor = function(message, fileName, lineNumber) {
// don't directly name this function, .name is used by Error.prototype.toString
if (this == window) return new arguments.callee(message, fileName, lineNumber);
this.name = errorConstructor.name;
this.message = message||"";
this.fileName = fileName||location.href;
if (!isNaN(+lineNumber)) this.lineNumber = +lineNumber;
else this.lineNumber = 1;
}
errorConstructor.name = constructorName||Error.prototype.name;
errorConstructor.prototype.toString = Error.prototype.toString;
return errorConstructor;
}
Usage: ErrorConstructor([constructorName])
Note: If no constructorName is specified, the default of Error.prototype.name is used
Usage for generated error constructor: errorConstructor([message[, location[, lineNumber]])
Examples:
var SecurityError = ErrorConstructor("Security Error"),
MarkupError = ErrorConstructor("(X)HTML Markup Error");
//these will both throw a SecurityError starting with "Security Error on line 83:"
var xss_error = "Possible XSS Vector\n\
JSON XHR response parsed with eval()\n\
Recommended fix: Parse JSON with JSON.parse";
throw new SecurityError(xss_error, "/js/searchResultsJSONloader.js", 83);
throw SecurityError(xss_error, "/js/searchResultsJSONloader.js", 83);
//these will both throw the following MarkupError:
//"(X)HTML Markup Error on line 1: Invalid DOCTYPE"
throw new MarkupError("Invalid DOCTYPE");
throw MarkupError("Invalid DOCTYPE");
Initial URL
Initial Description
Initial Title
Custom error objects in Javascript
Initial Tags
javascript
Initial Language
JavaScript