Попробуй поймай пример в эрланге

Я следовал за документацией, но не понял try catch, может кто-нибудь объяснить на простом примере?

3 ответа

Я думаю, вам понравится статья LYSE об исключениях.

Идея try catch состоит в том, чтобы попробовать выражение и перехватить его, если что-то пойдет не так. Вы сначала попробуете выражение, и если все пойдет хорошо, вы получите нормальный результат. Но если вместо этого вы столкнетесь с ошибкой, вы можете поймать ее и обработать.

Например, получение заголовка пустого списка приведет к исключению «плохой аргумент». Вы можете, например, перехватить это и вернуть тип ошибки или перехватить все шаблоны и вернуть все, что захотите. Попробуйте это в оболочке Erlang!

          1> try hd(["foo","bar"]) catch error:Error -> {error,Error} end.
    "foo"
    2> try hd([]) catch error:Error -> {error,Error} end.
{error,badarg}
    3> try hd([]) catch _:_ -> "Can't take the head of an empty list" end.
"Can't take the head of an empty list"

Если вы хотите использовать однострочный пример в оболочке Erlang:

      1> try exit(timeout) of _ -> not_caught catch exit:timeout -> ok end.
ok
Другие вопросы по тегам