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
--> Nothing
Fö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 DivisionByZero
Fö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