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: