Nel tuo esempio, non è necessario il try
; si può solo fare
result = (catch code_that_fails()).
Se viene sollevata un'eccezione, catch
restituisce una tupla che contiene il error code and stack trace.
Si noti che questo è generalmente considerato una cattiva pratica in quanto può mascherare le eccezioni. L'approccio stacktrace descritto in un'altra risposta è quasi certamente quello che vuoi.
try
è un'estensione della funzionalità originale catch
; se lo si utilizza, è necessario specificare le clausole per ciascun tipo di eccezione che si desidera rilevare e gestirle in modo appropriato. Vedere le sezioni 6.18/6.19 di Erlang reference manual per dettagli e esempi chiari.
fonte
2009-08-26 16:28:58
Francesco, se si è soddisfatti con una delle risposte, si prega di segnare come una corretta/soddisfacente risposta – gleber