En su ejemplo, no necesita el try
; sólo se puede hacer
result = (catch code_that_fails()).
Si se produce una excepción catch
, devuelve una tupla que contiene el error code and stack trace.
Tenga en cuenta que esto generalmente se considera una mala práctica, ya que puede enmascarar excepciones. El enfoque de stacktrace descrito en otra respuesta es casi seguramente lo que quieres.
try
es una extensión de la funcionalidad original catch
; si lo usa, debe especificar cláusulas para cada tipo de excepción que le gustaría captar y manejarlas de manera adecuada. Consulte las secciones 6.18/6.19 del Erlang reference manual para obtener detalles y ejemplos claros.
Francesco, si está satisfecho con una de las respuestas, por favor marca como correcto/respuesta satisfactoria – gleber