Elm:
エラー処理
方法:
Elmのコア哲学は「実行時例外無し」です。したがって、ElmはMaybe
やResult
のような型を使い、その型システムを活用してエラーを処理します。
Maybe
シナリオの場合:
safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
if denominator == 0 then
Nothing
else
Just (numerator / denominator)
-- 実行すると:
safeDivide 10 2
--> Just 5
safeDivide 10 0
--> Nothing
Result
シナリオの場合:
type Error = DivisionByZero
safeDivide : Float -> Float -> Result Error Float
safeDivide numerator denominator =
if denominator == 0 then
Err DivisionByZero
else
Ok (numerator / denominator)
-- そして使用するとき:
safeDivide 10 2
--> Ok 5
safeDivide 10 0
--> Err DivisionByZero
深堀り
Elmの型システムは厳格であり、早期にエラーを発見するのに役立ちます。歴史的にほとんどの言語は例外と実行時チェックに頼っていましたが、Elmはコンパイル時の保証を選びました。Result
のような代替案は詳細なエラー情報を提供する一方で、Maybe
はYes-Noシナリオについてよりシンプルです。Elmのエラー処理は、開発者が前もってすべてのパスを検討するよう促し、忘れられがちなエラーケースの落とし穴を避けることを奨励します。
参照:
- エラー処理に関するElm公式ガイドのセクション:エラー処理 - はじめに
- Elm
Maybe
ドキュメンテーション:Elm – Maybe - Elm
Result
ドキュメンテーション:Elm – Result