二種類のエラー
他のプログラムと同様に、Effectプログラムも期待される理由や予期しない理由で失敗する可能性があります。非EffectプログラムとEffectプログラムの違いは、プログラムが失敗したときに提供される詳細情報にあります。Effectは、プログラムが失敗した原因に関する情報をできる限り保持し、詳細で包括的、かつ人間に読みやすい失敗メッセージを生成しようとします。
Effectプログラムには、プログラムが失敗する可能性がある二つの方法があります:
-
期待されるエラー:これは、開発者が通常のプログラム実行の一部として予想し、期待するエラーです。
-
予期しないエラー:これは、思いがけなく発生し、意図されたプログラムの流れには含まれないエラーです。
期待されるエラー
これらのエラーは、失敗、型付けされたエラー、または_回復可能なエラー_とも呼ばれ、開発者が通常のプログラム実行の一部として予想するエラーです。これらは、チェックされた例外と似た目的を持ち、プログラムのドメインや制御フローを定義する役割を果たします。
期待されるエラーは、Effectデータ型の「エラー」チャネルによって型レベルで追跡されます。
次の例では、型からプログラムがHttpError型のエラーで失敗する可能性があることが明らかです:
Effect<string, HttpError>予期しないエラー
予期しないエラーは、欠陥、未型付けのエラー、または_回復不可能なエラー_とも呼ばれ、開発者が通常のプログラム実行中に発生することを予想しないエラーです。期待されるエラーがプログラムのドメインや制御フローの一部と見なされるのに対し、予期しないエラーはチェックされていない例外に似ており、プログラムの期待される動作の範囲外に位置します。
これらのエラーは予期されていないため、Effectは型レベルで追跡しません。しかし、Effectランタイムはこれらのエラーを追跡し、予期しないエラーから回復するためのいくつかのメソッドを提供します。