https://qiita.com/rana_kualu/items/8bafecd760ae69cfac41#error-cause


}

インスタンス化されていないので、静的でないインスタンスフィールドに値を入れたりはできません。

エラーが連鎖したときに、親を.causeで辿れるようにします。

try{
	try{
		try{
			throw new Error('Error1');
		}catch(e){
			throw new Error('Error2', {cause: e});
		}
	}catch(e){
		throw new Error('Error3', {cause: e});
	}
}catch(e){
	console.table(e); // Error3
	console.table(e.cause); // Error2
	console.table(e.cause.cause); // Error1
}

第二引数にcauseを指定しなければなりません。 適当にhogeとか渡しても持って行ってくれません。

エラーをキャッチして何かの付加情報を付けて再度エラーを出すみたいなことは時々やりたくなりますが、これまでは一般的な方法がなく、ライブラリやプロジェクトによって異なる書き方がされていました。 今後はこれに統一されることで、親を辿るのが楽になるでしょう。

地味で地道だ。

いやなんというか、これまでのECMAScriptのProposalってどうも見た目の派手さばっかり求めて足元がおざなりって感じを受けていたのですが、今回ES2022に入ったのは、地味ながらも必要性が高く地道に使い勝手の高いものが多いという印象です。 個人の印象なので実際どうかは知りませんけどね。

新機能の多くはオブジェクトに関するものであり、これで他言語と遜色ないレベルでのクラス構文が書けるようになったと言っていいのではないでしょうか。

あとは早く;必須にして。

Why not register and get more from Qiita?

  1. We will deliver articles that match youBy following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficientlyBy "stocking" the articles you like, you can search right away

What you can do with signing up

Sign up

Login

Comments