Если вас интересует точное исключение, которое выдается, вы всегда можете узнать таким образом
1> try 5/0 catch Class:Reason -> {Class, Reason} end.
{error,badarith}
2> try 5/0 catch error:badarith -> ok end.
ok
3> try hd(ok), 5/0 catch error:badarith -> ok end.
** exception error: bad argument
4> try hd(ok), 5/0 catch Class2:Reason2 -> {Class2, Reason2} end.
{error,badarg}
5> try hd(ok), 5/0 catch error:badarg -> ok end.
ok
Кстати, вы не должны использовать выражение catch
в большинстве случаев в наше время. Это считается устаревшим выражением и хранится в основном для обратной совместимости и небольшого специального использования.