ES2016(ES7)では非同期プログラミングが策定されました。各JavaScriptエンジンもPromiseから対応が始まり、Can I useを参照すると2018/1現在ではIE11以外のデスクトップ、スマホとも主要ブラウザはほぼ対応が完了していて利用出来る状態が進んでいるようです。 非同期関数からのエラーをどう返すべきか? node.jsを開発を行っていて非同期プログラミングをしているとPromise配下では例外とrejectがあって何を使って良いのか考えていました。辿り付いた結論は、 rejectはシステムでは極力使わずどうしても必要な場合は例外を利用する エラーハンドリングを行う必要がある想定可能なエラーはasync functionのreturnで結果を返す ということになりました。どうしてこういう方針になったのかをそもそもエラーとは何かを考察しながら説明します。 システムが想