Javascript - エラーでオブジェクトをスローできますか? 質問する

Javascript - エラーでオブジェクトをスローできますか? 質問する

を使用してオブジェクトをスローすることは可能ですかError? 以下の例では、コンソールに と表示されますundefined

try {
    throw Error({foo: 'bar'});
} catch (err) {
    console.log(err.message.foo);
}

ベストアンサー1

独自のオブジェクトをスローし、それに Error インスタンスを関連付けることができます。

try {
  // ...
  throw {
    foo: "bar",
    error: new Error()
  };

ステートメントthrowは厳密ではありませんが、Error()コンストラクターは厳密です。もちろん、エラーではないものをスローする場合は、キャッチ環境がスローしたものを期待している場合にのみ役立ちます。

Error オブジェクトをカスタムのスロー値の一部として持つことは、構築された Error インスタンスに (現在基本的にすべてのブラウザーがサポートしていると思われる) 関連するスタック トレースが含まれるため便利です。

おすすめ記事