Elm:
Obsługa błędów

Jak robić:

Podstawową filozofią Elm jest Brak Wyjątków w Czasie Wykonania. Dlatego Elm wykorzystuje swój system typów z takimi typami jak Maybe i Result do obsługi błędów.

Dla scenariusza z Maybe:

safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
    if denominator == 0 then
        Nothing
    else
        Just (numerator / denominator)
        
-- Kiedy to uruchomisz:

safeDivide 10 2
--> Just 5

safeDivide 10 0
--> Nothing

Dla scenariusza z Result:

type Error = DivisionByZero

safeDivide : Float -> Float -> Result Error Float
safeDivide numerator denominator =
    if denominator == 0 then
        Err DivisionByZero
    else
        Ok (numerator / denominator)

-- I używając tego:

safeDivide 10 2
--> Ok 5

safeDivide 10 0
--> Err DivisionByZero

Pogłębiona analiza

System typów w Elm jest ścisły, co pomaga wcześnie wykryć błędy. Historycznie większość języków polegała na wyjątkach i sprawdzaniu w czasie wykonania, ale Elm wybrał gwarancje w czasie kompilacji. Alternatywy takie jak Result pozwalają na szczegółowe informacje o błędach, podczas gdy Maybe jest prostsze dla scenariuszy tak-nie. Obsługa błędów w Elm zachęca programistów do przemyślenia wszystkich ścieżek na wstępie, unikając pułapek związanych z zapomnianymi przypadkami błędów.

Zobacz również: