Browser/User Agent Support
| IE | Mozilla | Netscape | Opera | Safari | 5.0+ | 1.0+ | 6.0+ | 7.0+ | 1.0+ |
|---|
Constructors
| Constructor | IE | Mozilla | Netscape | Opera | Safari |
|---|---|---|---|---|---|
Constructs a new instance of an Error object. | 5.0+ | 1.0+ | 6.0+ | 7.0+ | 1.0+ |
Properties
| Property | IE | Mozilla | Netscape | Opera | Safari |
|---|---|---|---|---|---|
Specifies the function that creates the Error prototype. | 5.0+ | 1.0+ | 6.0+ | 7.0+ | 1.0+ |
Description or message text of the error. | 5.0+ | no | no | no | no |
Path or URL to the file that raised the error. | no | 1.0+ | 6.0+ | no | no |
Line number in file that raised the error. | no | 1.0+ | 6.0+ | no | no |
Error message. | 5.5+ | 1.0+ | 6.0+ | 7.0+ | 1.0+ |
Error name. | 5.5+ | 1.0+ | 6.0+ | 7.0+ | 1.0+ |
Error number. | 5.0+ | no | no | no | no |
Reference to the Error object prototype. | 5.0+ | 1.0+ | 6.0+ | 7.0+ | 1.0+ |
Stack trace that gives information about the context of the error. | 5.0+ | 1.0+ | 6.0+ | no | no |
Methods
| Method | IE | Mozilla | Netscape | Opera | Safari |
|---|---|---|---|---|---|
Converts an Error object to a string. | 5.0+ | 1.0+ | 6.0+ | 7.0+ | 1.0+ |
Throwing a generic error
Usually you create an Error object with the intention of raising it using the throw keyword. You can handle the error using the try...catch construct:
try {
throw new Error("Whoops!");
} catch (e) {
alert(e.name + ": " + e.message);
}Handling a specific error
You can choose to handle only specific error types by testing the error type with the instanceof keyword:
try {
foo.bar();
} catch (e) {
if (e instanceof EvalError) {
alert(e.name + ": " + e.message);
} else if (e instanceof RangeError) {
alert(e.name + ": " + e.message);
}
// ... etc
}You can also test the error's name
property to determine the error type. You can use this
facility to create "user-defined" error types:
try {
var error = new Error("Whoops!");
error.name = "MyError";
throw error;
} catch (e) {
if (e.name == "EvalError") {
alert(e.name + ": " + e.message);
} else if (e.name == "RangeError") {
alert(e.name + ": " + e.message);
}
// ... etc
else if (e.name == "MyError") {
alert(e.name + ": " + e.message);
}
}
Remarks
Besides the base Error, there are six
other core error types in JavaScript 1.5:
-
EvalError: raised when an error occurs executing
code in
eval() - RangeError: raised when a numeric variable or parameter is outside of its valid range
- ReferenceError: raised when de-referencing an invalid reference
-
SyntaxError: raised when a syntax error occurs
while parsing code in
eval() - TypeError: raised when a variable or parameter is not a valid type
-
URIError: raised when
encodeURI()ordecodeURI()are passed invalid parameters
References
EvalError | RangeError | ReferenceError | SyntaxError | TypeError | URIError
Availability
JavaScript 1.5 | JScript 5.5 | ECMAScript v3
Constructor Detail
Error Error([String message])
Constructs a new instance of an Error object.
| String | message | Error message. (optional) |
Property Detail
Object constructor - only
Specifies the function that creates the Error prototype.
- Availability
JavaScript 1.5 | JScript 5.0 | ECMAScript v3
String description - only
Description or message text of the error.
- Availability
JScript 5.0
String fileName - only
Path or URL to the file that raised the error.
- Availability
JavaScript 1.5
Number lineNumber - only
Line number in file that raised the error.
- Availability
JavaScript 1.5
String message
Error message.
- Availability
JavaScript 1.5 | JScript 5.5 | ECMAScript v3
String name
Error name.
- Availability
JavaScript 1.5 | JScript 5.5 | ECMAScript v3
Number number - only
Error number.
- Availability
JScript 5.0
Object prototype - only
Reference to the Error object prototype.
- Availability
JavaScript 1.5 | JScript 5.0 | ECMAScript v3
String stack - only
Stack trace that gives information about the context of the error.
- Availability
JavaScript 1.5



