erlang中的错误处理

erlang中错误大体分为四种:

编译错误
逻辑错误
运行时错误
用户代码生成的错误

编译错误,主要是编译器检测出的代码语法错误
逻辑错误,是指程序没有完成预期的工作,属于开发人员的问题
运行时错误,是指erlang运行时抛出的错误,比如对非数据类型执行算术运算,erlang运行时会捕获异常,并抛出。在erlang中,这类异常的类型为error
用户自定义错误,是指通过exit/1或者throw/1生成
我们把运行时错误以及用户抛出的错误称为异常(exception),他们具有三种类型:throw, error, exit。
error型异常,通过erlang:error/1, 2生成,也可以使用早期的erlang:fault/1, 2
throw型异常,通过throw/1生成
exit型异常,通过exit/1生成
在erlang中,进程内的异常可以通过try, catch来进行捕获处理。
推荐使用try,其为新添加的语法。进程间的异常可以通过监督树(supervisor tree),监控进程(monitor)来实现。
badarg 参数错误,参数格式或类型错误
badarith [...]