TypeError
オブジェクトは、値が期待される型でない場合のエラーを表します。
構文
new TypeError([message[, fileName[, lineNumber]]])
引数
message
- 省略可能。人間に読めるエラーの説明
fileName
- 省略可能。例外を引き起こしたコードが含まれるファイル名
lineNumber
- 省略可能。例外を引き起こしたコードの行番号
説明
TypeError
は、ある演算子又は関数が期待する型と互換性の無いオペランド又は引数がその関数に渡された場合に投げられます。
プロパティ
TypeError.prototype
TypeError
オブジェクトにプロパティを追加することができます。
メソッド
グローバルな TypeError
オブジェクトは、自分自身のメソッドを持っていませんが、プロトタイプチェーンを通していくつかのメソッドを継承しています。
TypeError
インスタンス
プロパティ
TypeError.prototype.constructor
- インスタンスのプロトタイプを生成した関数を示します。
TypeError.prototype.message
- エラーメッセージ。ECMA-262 は
TypeError
自体がmessage
プロパティを提供するべきであると規定してるにもかかわらず、SpiderMonkey ではError.prototype.message
を継承します。 TypeError.prototype.name
- エラー名。
Error
から継承します。 TypeError.prototype.fileName
- エラーが発生したファイルのパス。
Error
から継承します。 TypeError.prototype.lineNumber
- エラーが発生したファイル内の行番号。
Error
から継承します。 TypeError.prototype.columnNumber
- エラーが発生した行内のカラム番号。
Error
から継承します。 TypeError.prototype.stack
- スタックトレース。
Error
から継承します。
メソッド
例
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" }
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" }
仕様
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |