Elm:
Gestione degli errori

Come fare:

La filosofia di base di Elm è Nessuna Eccezione a Runtime. Di conseguenza, Elm sfrutta il suo sistema di tipi con tipi come Maybe e Result per gestire gli errori.

Per lo scenario Maybe:

safeDivide : Float -> Float -> Maybe Float
safeDivide numeratore denominatore =
    if denominatore == 0 then
        Nothing
    else
        Just (numeratore / denominatore)
        
-- Quando lo esegui:

safeDivide 10 2
--> Just 5

safeDivide 10 0
--> Nothing

Per lo scenario Result:

type Error = DivisionByZero

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

-- E usandolo:

safeDivide 10 2
--> Ok 5

safeDivide 10 0
--> Err DivisionByZero

Approfondimento

Il sistema di tipi di Elm è rigoroso, il che aiuta a rilevare gli errori precocemente. Storicamente, la maggior parte dei linguaggi si affidava a eccezioni e controlli a runtime, ma Elm ha scelto garanzie a tempo di compilazione. Alternative come Result permettono di fornire informazioni dettagliate sugli errori, mentre Maybe è più semplice per scenari di tipo sì-no. La gestione degli errori in Elm incoraggia gli sviluppatori a considerare tutti i percorsi anticipatamente, evitando le insidie dei casi di errore dimenticati.

Vedi anche: