このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Error() コンストラクター
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Error() コンストラクターはError オブジェクトを作成します。
In this article
構文
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省略可非標準このエラーを発生させたファイルの行番号で
lineNumberプロパティに反映されます。既定では、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> |