Разницы нет.Единственное, что меняется, это когда вы пытаетесь связать результат операции с переменной:
1> X = catch 1/0.
* 1: syntax error before: 'catch'
1> X = (catch 1/0).
{'EXIT',{badarith,[{erlang,'/',[1,0]},
{erl_eval,do_apply,5},
{erl_eval,expr,5},
{erl_eval,expr,5},
{shell,exprs,7},
{shell,eval_exprs,7},
{shell,eval_loop,3}]}}
Это просто вопрос приоритета между catch
как префиксным оператором и =
какинфиксный оператор.Скобки помогают сделать вариант использования однозначным по приоритету.
В остальном они точно такие же.