例外
プログラミングにおける例外とはなにか
例外の難しさ
依存性が発生
例外のない言語
回復可能なエラー(Result<T,E>)
これはプログラミングにおける例外そのもの
多値返却
呼び出し元が必ず例外処理をする
私は以下の全てを満たす例外システムがあるといいなと思っています。
例外を送出するのが簡単
例外を再開できる
例外を値に変換するのが簡単
特に、複数起きるかもしれない例外をちゃんと区別して扱える必要がある
「例外が起きるかもしれない関数呼び出しの結果」を第一級の値として扱える仕組み
再開できる例外はCommon Lispのコンディションシステムや、Schemeの raise-conituable なんかにあります。 あるいはAlgebraic Effects and Handlersや(限定)継続でもできそうです。