Elm:
Обработка ошибок
Как:
Ключевая философия Elm - это отсутствие исключений во время выполнения. Поэтому Elm использует свою систему типов с типами, такими как Maybe
и Result
, для обработки ошибок.
Для сценария Maybe
:
safeDivide : Float -> Float -> Maybe Float
safeDivide числитель знаменатель =
if знаменатель == 0 then
Nothing
else
Just (числитель / знаменатель)
-- При запуске:
safeDivide 10 2
--> Just 5
safeDivide 10 0
--> Nothing
Для сценария Result
:
type Error = DivisionByZero
safeDivide : Float -> Float -> Result Error Float
safeDivide числитель знаменатель =
if знаменатель == 0 then
Err DivisionByZero
else
Ok (числитель / знаменатель)
-- Используя это:
safeDivide 10 2
--> Ok 5
safeDivide 10 0
--> Err DivisionByZero
Погружение
Система типов Elm строга, что помогает обнаруживать ошибки на ранней стадии. Исторически большинство языков полагались на исключения и проверки во время выполнения, но Elm выбрал гарантии на этапе компиляции. Альтернативы вроде Result
позволяют передавать подробную информацию об ошибках, тогда как Maybe
проще для сценариев да-нет. Обработка ошибок в Elm побуждает разработчиков заранее учитывать все возможные пути, избегая ловушек забытых случаев ошибок.
Смотрите также:
- Официальный раздел руководства Elm по обработке ошибок: Обработка ошибок – Введение
- Документация Elm
Maybe
: Elm – Maybe - Документация Elm
Result
: Elm – Result