TypeError
The TypeError
object represents an error when an operation could not be performed, typically (but not exclusively) when a value is not of the expected type.
A TypeError
may be thrown when:
- an operand or argument passed to a function is incompatible with the type expected by that operator or function; or
- when attempting to modify a value that cannot be changed; or
- when attempting to use a value in an inappropriate way.
Constructor
TypeError()
- Creates a new
TypeError
object.
Instance properties
TypeError.prototype.message
- Error message. Although ECMA-262 specifies that
TypeError
should provide its ownmessage
property, in SpiderMonkey, it inheritsError.prototype.message
. TypeError.prototype.name
- Error name. Inherited from
Error
. TypeError.prototype.fileName
- Path to file that raised this error. Inherited from
Error
. TypeError.prototype.lineNumber
- Line number in file that raised this error. Inherited from
Error
. TypeError.prototype.columnNumber
- Column number in line that raised this error. Inherited from
Error
. TypeError.prototype.stack
- Stack trace. Inherited from
Error
.
Examples
Catching a TypeError
try {
null.f()
} catch (e) {
console.log(e instanceof TypeError) // true
console.log(e.message) // "null has no properties"
console.log(e.name) // "TypeError"
console.log(e.fileName) // "Scratchpad/1"
console.log(e.lineNumber) // 2
console.log(e.columnNumber) // 2
console.log(e.stack) // "@Scratchpad/2:2:3\n"
}
Creating a TypeError
try {
throw new TypeError('Hello', "someFile.js", 10)
} catch (e) {
console.log(e instanceof TypeError) // true
console.log(e.message) // "Hello"
console.log(e.name) // "TypeError"
console.log(e.fileName) // "someFile.js"
console.log(e.lineNumber) // 10
console.log(e.columnNumber) // 0
console.log(e.stack) // "@Scratchpad/2:2:9\n"
}
Specifications
Browser compatibility
BCD tables only load in the browser