Error() コンストラクター
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Error
コンストラクターはError
オブジェクトを生成します。
構文
new Error()new Error(message)new Error(message, options)new Error(message, fileName)new Error(message, fileName, lineNumber)Error()Error(message)Error(message, options)Error(message, fileName)Error(message, fileName, lineNumber)
メモ:Error()
はnew
があってもなくても呼び出せます。どちらも新しいError
のインスタンス を生成します。
引数
message
省略可人間が読めるエラーの説明。
options
省略可以下のプロパティを持つオブジェクトです。
fileName
省略可非標準このエラーを発生させたファイルのパスで
fileName
プロパティに反映されます。既定では、Error()
コンストラクターを呼び出したコードを含むファイルの名前です。lineNumber
省略可非標準このエラーを発生させたファイルの行番号で
fileName
プロパティに反映されます。既定では、Error()
コンストラクターの呼び出しを含む行番号です。
例
関数呼び出しか new による構築か
Error
が関数のように使用された場合 —new
がなかった場合、Error
オブジェクトを返します。したがって、Error
を呼び出すだけでError
オブジェクトをnew
キーワードから構築した場合と同じものを出力します。
// これは...const x = Error("関数呼び出しによって生成されました。");// ...これと同じ機能です。const y = new Error('"new" キーワードによって生成されました。');
原因とともに例外を再発生させる
場合によっては、例外を捕捉して、新しいメッセージとともに例外を再発生させることが有用であることがあります。その場合、元のエラーを新しいError
のコンストラクターに渡すべきです。
try { frameworkThatCanThrow();} catch (err) { throw new Error("New error message", { cause: err });}
より詳細な例については、Error > 類似するエラーと区別する をご覧ください。
options 引数の省略
JavaScriptは、options
がオブジェクトの場合にのみoptions.cause
を読み取ろうとします。これによって、非標準の(第二引数に文字列を要求する)Error(message, fileName, lineNumber)
という別のシグニチャとの曖昧さを避けます。options
を省略するか、プリミティブ値をoptions
として渡すか、cause
プロパティを持たないオブジェクトを渡した場合、生成されたError
オブジェクトはcause
プロパティを持たないでしょう。
// optionsを省略するconst error1 = new Error("Error message");console.log("cause" in error1); // false// プリミティブ値を渡すconst error2 = new Error("Error message", "");console.log("cause" in error2); // false// causeプロパティを持たないオブジェクトを渡すconst error3 = new Error("Error message", { details: "http error" });console.log("cause" in error3); // false
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification # sec-error-constructor |