try...catch
generate_exception(1)->a;
generate_exception(2)->throw(a);
generate_exception(3)->exit(a);
generate_exception(4)->{"EXIT",a};
generate_exception(5)->erlang:error(a).
demo1()->
[catcher(X)||X<-[1,2,3,4,5]].
catcher(N)->
try
{A,B}=generate_exception(N),
{N,A,B}
catch
throw:X->{N,caught,thrown,X};
exit:X->{N,caught,exited,X};
error:X->{N,caught,error,X}
end.
栈跟踪
erlang:get_stacktrace()