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
--> NothingDla 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 DivisionByZeroPogłę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