在本节的第二段中,http://aosabook.org/en/riak.html中出现了以下几行:15.1。Erlang简介:
使用负数调用函数将导致运行时错误,因为所有子句都不匹配。不处理这种情况是非防御性编程的一个例子,Erlang鼓励这样做。
两个问题:在Erlang中,处理产生的错误的惯用方法是什么?为什么这要比在OCaml或Haskell这样的语言中显式覆盖所有情况更好呢?
发布于 2015-09-28 04:32:38
如果不为错误用例编写代码,让系统生成运行时错误,则至少有三个优点:
现在您可以专注于错误管理:您将在哪里处理错误。Erlang为try和catch语句提供了经典的方法,并使用OTP监督树和链接与监视机制提供了一种更加惯用的方法。
简单地说,您可以控制一个进程崩溃的后果(哪些进程将与其崩溃,哪些进程将被告知)以及重新启动它们的复杂方法。
重要的是要记住,在erlang中,您通常会启动许多角色非常有限的小进程,在这种情况下,让它们崩溃和重新启动确实是有意义的。
我是learnyousomeerlang网站的粉丝,您可以在这里找到与错误管理相关的三个章节:
https://stackoverflow.com/questions/32815326
复制相似问题