Elm:
Hantering av fel
Hur man gör:
Elms kärnfilosofi är Inga Körtidsundantag. Så, Elm utnyttjar sitt typsystem med typer som Maybe och Result för att hantera fel.
För Maybe-scenariot:
safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
if denominator == 0 then
Nothing
else
Just (numerator / denominator)
-- När du kör det:
safeDivide 10 2
--> Just 5
safeDivide 10 0
--> NothingFör Result-scenariot:
type Error = DivisionByZero
safeDivide : Float -> Float -> Result Error Float
safeDivide numerator denominator =
if denominator == 0 then
Err DivisionByZero
else
Ok (numerator / denominator)
-- Och använda det:
safeDivide 10 2
--> Ok 5
safeDivide 10 0
--> Err DivisionByZeroFördjupning
Elms typsystem är strikt, vilket hjälper till att upptäcka fel tidigt. Historiskt har de flesta språk förlitat sig på undantag och körtidskontroller, men Elm valde garantier vid kompileringstid. Alternativ som Result tillåter detaljerad felinformation, medan Maybe är enklare för ja-nej-scenarier. Elms felhantering uppmuntrar utvecklare att överväga alla vägar i förväg, och undviker fallgropar av glömda felfall.
Se även:
- Elm:s officiella guideavsnitt om felhantering: Felhantering – En introduktion
- Elm
Maybe-dokumentation: Elm – Maybe - Elm
Result-dokumentation: Elm – Result