Trong ví dụ của bạn, bạn không cần try
; bạn chỉ có thể làm
result = (catch code_that_fails()).
Nếu một ngoại lệ được nâng lên, catch
trả về một tuple chứa error code and stack trace.
Lưu ý rằng điều này thường được coi là hành vi xấu vì nó có thể che giấu ngoại lệ. Cách tiếp cận stacktrace được mô tả trong câu trả lời khác gần như chắc chắn là những gì bạn muốn.
try
là phần mở rộng của chức năng gốc catch
; nếu bạn sử dụng nó, bạn cần xác định các mệnh đề cho từng loại ngoại lệ mà bạn muốn nắm bắt và xử lý chúng một cách thích hợp. Xem các phần 6.18/6.19 của Erlang reference manual để biết chi tiết và các ví dụ rõ ràng.
Nguồn
2009-08-26 16:28:58
Francesco, nếu bạn hài lòng với một trong các câu trả lời, vui lòng đánh dấu câu trả lời phù hợp/thỏa mãn – gleber