throw — биф для вызова произвольного исключения класса throw.
Подразумевается, что исключения данного класса применяются в тех случаях, когда наша функция может закончиться плановым крахом (и эта возможность, конечно, должна быть отражена в документации).
Пример:
main() ->
some(),
io:format("Три...~n").
some() ->
io:format("Раз...~n"),
throw("I'm so tired!"),
io:format("Два...~n").
1> opit:main().
Раз...
** exception throw: "I'm so tired!"
in function opit:some/0 (opit.erl, line 10)
Если throw вызвать с помощью catch-выражения, оно вернёт аргумент у throw:
1> throw({some,mess}).
** exception throw: {some,mess}
2> catch throw({some,mess}).
{some,mess}
h(erlang, throw).
Copyright © 2025 Алексей Карманов