ES2022: Error Cause
- https://github.com/asciidwango/js-primer/issues/1337#issuecomment-1000668450_
ここで対応しないとしていたけど、再検討する。
具体的には次の場所では、Error causeを使った方が明らかに良いので、ここで使えるように基礎文法で紹介したい。
function main() {
fetchUserInfo("js-primer-example")
.catch((error) => {
// Promiseチェーンの中で発生したエラーを受け取る
console.error(`エラーが発生しました (${error})`);
});
}
Promiseを活用する · JavaScript Primer #jsprimer
TODO
- [ ] 例外処理 · JavaScript Primer #jsprimerにError Causeを入れる
- [ ] Promiseを活用する · JavaScript Primer #jsprimer などでError Causeを使う
課題として、Error Causeの効果(スタックトレースの話とか)をどうやって表現するかという問題がありそう
他にも文中にこういうケースがないかは見つけないといけない。 非同期 or try-catchぐらいだと思うので、ないような気もしているけどどうだろ?
@himanoa さんに担当してもらう。
入れること自体(Error Cause自体の説明とPromiseを活用するなどでの利用)は多分そこまで難しくないのですが、 例外処理で、スタックトレースの説明が最後になってるので、 スタックトレースの説明してからじゃないとError Causeを説明できない気がしていて、説明の順番どうしようというのがちょっと悩みどころになってます。
エラーとデバッグの中に入れてしまうか、もうちょっとセクションを整理して再構成する(スタックトレースをErrorあたりとか前の方に持ってくる)などの選択肢がありそうな気はします。
あとは、Error Cause自体をシンプルに意味ある説明をしようとすると、re-throwになる気がしてて、
エラーメッセージを書き換えつつスタックトレースは維持するには?(or シンプルにError Cause[^E2022]というタイトル) という感じのセクションを追加(コラムっぽい感じもしますが、ユースケースで使うので本文として入れる)的な方法が良いのかもなーとも思ったりします。
@azu 説明ありがとうございます!
例外処理の最後に Error Cause[^E2022] のセクションを追加して、re-throwした時にスタックトレースを維持するための説明を書く方針で進めようとおもいます!
- https://github.com/mochajs/mocha/pull/4829
Error Causeの表示を対応してる例