Elm:
Обробка помилок

Як це зробити:

Основна філософія Elm – це “Відсутність винятків під час виконання”. Тому Elm використовує свою типізовану систему з типами, як Maybe та Result, для обробки помилок.

Для сценарію з Maybe:

safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
    if denominator == 0 then
        Nothing
    else
        Just (numerator / denominator)
        
-- Коли ви запускаєте:

safeDivide 10 2
--> Just 5

safeDivide 10 0
--> Nothing

Для сценарію з Result:

type Error = DivisionByZero

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

-- І використовуючи його:

safeDivide 10 2
--> Ok 5

safeDivide 10 0
--> Err DivisionByZero

Поглиблений огляд

Типова система Elm є суворою, що допомагає виявляти помилки на ранніх етапах. Історично більшість мов спиралися на винятки та перевірки під час виконання, але Elm обрав гарантії під час компіляції. Альтернативи на кшталт Result дозволяють деталізувати інформацію про помилки, тоді як Maybe простіший для сценаріїв з відповіддю “так-ні”. Обробка помилок в Elm заохочує розробників передбачати всі шляхи наперед, уникаючи підводних каменів забутих випадків помилок.

Дивіться також: