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ż:
- Oficjalny przewodnik Elm dotyczący obsługi błędów: Obsługa błędów – Wprowadzenie
- Dokumentacja Elm
Maybe
: Elm – Maybe - Dokumentacja Elm
Result
: Elm – Result