Elm:
エラー処理

方法:

Elmのコア哲学は「実行時例外無し」です。したがって、ElmはMaybeResultのような型を使い、その型システムを活用してエラーを処理します。

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のエラー処理は、開発者が前もってすべてのパスを検討するよう促し、忘れられがちなエラーケースの落とし穴を避けることを奨励します。

参照: