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 побуждает разработчиков заранее учитывать все возможные пути, избегая ловушек забытых случаев ошибок.

Смотрите также: