Elm:
Tratamento de erros

Como fazer:

A filosofia central do Elm é Não Ter Exceções em Tempo de Execução. Dessa forma, o Elm tira proveito do seu sistema de tipos com tipos como Maybe e Result para gerenciar erros.

Para o cenário Maybe:

safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
    if denominator == 0 then
        Nothing
    else
        Just (numerator / denominator)
        
-- Quando você executa:

safeDivide 10 2
--> Just 5

safeDivide 10 0
--> Nothing

Para o cenário Result:

type Error = DivisionByZero

safeDivide : Float -> Float -> Result Error Float
safeDivide numerator denominator =
    if denominator == 0 then
        Err DivisionByZero
    else
        Ok (numerator / denominator)

-- E usando:

safeDivide 10 2
--> Ok 5

safeDivide 10 0
--> Err DivisionByZero

Aprofundando

O sistema de tipos do Elm é rigoroso, o que ajuda a detectar erros precocemente. Historicamente, a maioria das linguagens contava com exceções e verificações em tempo de execução, mas o Elm optou por garantias em tempo de compilação. Alternativas como Result permitem informações detalhadas de erros, enquanto Maybe é mais simples para cenários de sim ou não. O tratamento de erros em Elm encoraja os desenvolvedores a considerar todos os caminhos antecipadamente, evitando as armadilhas de casos de erro esquecidos.

Veja Também: