JavaScript

TypeError オブジェクト

 編集:2022.08.09 by T.A.

TypeError オブジェクトは、演算が実行できなくなった時の新しいエラーを表します。特に値が期待された型ではなかった場合です(ただし、それに限りません)。

TypeError は以下のような場合に発生します。

コンストラクター
TypeError()
新しい TypeError オブジェクトを生成します。
インスタンス プロパティ
TypeError.message
エラー メッセージです。ECMA-262 において TypeError は自身の message プロパティを提供するべきとされていますが、SpiderMonkey では Error.prototype.message を継承しています。
TypeError.name
エラー名です。Error から継承しています。
TypeError.fileName
このエラーが発生したファイルのパスです。Error から継承しています。
TypeError.lineNumber
このエラーが発生したファイル内の行番号です。Error から継承しています。
TypeError.columnNumber
このエラーが発生した行内の桁番号です。Error から継承しています。
TypeError.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"
}

テスト