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 заохочує розробників передбачати всі шляхи наперед, уникаючи підводних каменів забутих випадків помилок.
Дивіться також:
- Розділ офіційного керівництва Elm про обробку помилок: Обробка помилок - Введення
- Документація Elm
Maybe
: Elm – Maybe - Документація Elm
Result
: Elm – Result