を使用してオブジェクトをスローすることは可能ですか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 インスタンスに (現在基本的にすべてのブラウザーがサポートしていると思われる) 関連するスタック トレースが含まれるため便利です。