throw

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 Алексей Карманов