Erlang 文档说明了以下关于 gen_servers 的内容:
...
请注意,由于正常、关闭或 {shutdown,Term} 之外的任何其他原因,假定 gen_server 由于错误而终止,并使用 error_logger:format/2 发出错误报告。
来源:http ://www.erlang.org/doc/man/gen_server.html#Module:terminate-2
由于除了这三个原因之外的任何其他原因都被视为错误,因此我推断出原因normal
,shutdown
并且{shutdown, Reason}
被视为正常行为。
我想开发人员在选择在正常情况下停止 gen_server 的这三个原因时是有动机的,但我不太确定如何确定使用哪一个。
那么我应该什么时候使用normal
,shutdown
和{shutdown, Reason}
?