Elm:
Feilhåndtering
Hvordan:
Elms kjernefilosofi er Ingen Kjøretidsunntak. Så Elm utnytter sitt typesystem med typer som Maybe
og Result
for å håndtere feil.
For Maybe
-scenario:
safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
if denominator == 0 then
Nothing
else
Just (numerator / denominator)
-- Når du kjører det:
safeDivide 10 2
--> Just 5
safeDivide 10 0
--> Nothing
For Result
-scenario:
type Error = DivisionByZero
safeDivide : Float -> Float -> Result Error Float
safeDivide numerator denominator =
if denominator == 0 then
Err DivisionByZero
else
Ok (numerator / denominator)
-- Og bruker det:
safeDivide 10 2
--> Ok 5
safeDivide 10 0
--> Err DivisionByZero
Dypdykk
Elms typesystem er strengt, noe som hjelper med å fange opp feil tidlig. Historisk sett har de fleste språk stolt på unntak og kjøretidssjekker, men Elm har valgt garantiene ved kompileringstid. Alternativer som Result
tillater detaljert feilinformasjon, mens Maybe
er enklere for ja-nei-scenarioer. Elms feilhåndtering oppmuntrer utviklere til å vurdere alle veier på forhånd og unngår fallgruvene med glemte feiltilfeller.
Se også:
- Elms offisielle guide om feilhåndtering: Feilhåndtering – En Introduksjon
- Elm
Maybe
-dokumentasjon: Elm – Maybe - Elm
Result
-dokumentasjon: Elm – Result