Elm:
Virheiden käsittely
Kuinka:
Elmin perusfilosofia on Ei Suoritusaikaisia Poikkeuksia. Joten Elm hyödyntää tyypitysjärjestelmäänsä tyypeillä kuten Maybe
ja Result
virheiden käsittelyyn.
Maybe
skenaariolle:
safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
if denominator == 0 then
Nothing
else
Just (numerator / denominator)
-- Kun ajat sen:
safeDivide 10 2
--> Just 5
safeDivide 10 0
--> Nothing
Result
skenaariolle:
type Error = DivisionByZero
safeDivide : Float -> Float -> Result Error Float
safeDivide numerator denominator =
if denominator == 0 then
Err DivisionByZero
else
Ok (numerator / denominator)
-- Ja käyttäen sitä:
safeDivide 10 2
--> Ok 5
safeDivide 10 0
--> Err DivisionByZero
Syväsukellus
Elmin tyypitysjärjestelmä on tiukka, mikä auttaa löytämään virheet aikaisin. Historiallisesti useimmat kielet ovat luottaneet poikkeuksiin ja suoritusaikaisiin tarkistuksiin, mutta Elm valitsi käännösaikaiset takeet. Vaihtoehdot kuten Result
mahdollistavat yksityiskohtaisen virhetiedon, kun taas Maybe
on yksinkertaisempi kyllä-ei-skenaarioissa. Elmin virheenkäsittely kannustaa kehittäjiä harkitsemaan kaikkia polkuja etukäteen, välttäen näin unohtuneiden virhetapausten sudenkuopat.
Katso myös:
- Elmin virallinen oppaan osio virheenkäsittelystä: Virheenkäsittely – Johdanto
- Elm
Maybe
dokumentaatio: Elm – Maybe - Elm
Result
dokumentaatio: Elm – Result