有关OCaml标准库功能可能引起哪个错误的文档 1.3错误处理

问题描述

标题已经说完了-几乎:)

我尤其对模块SysUnix中的功能感兴趣。

“ OCaml中的Unix系统编程”一书(available here)指出:

1.3错误处理

除非另有说明,否则Unix模块中的所有函数在发生错误的情况下都会引发异常Unix_error

exception Unix_error of error * string * string

[...]

最后,异常的第一个参数是指示错误性质的错误代码。它属于变量类型错误

type error = E2BIG | EACCES | EAGAIN | ... | EUNKNowNERR of int

到目前为止,还不错,但是 ... 哪个函数可以引发哪个 error

例如,哪些人可以加注Unix_error(EAGAIN,_,_),而哪些人不能加注?

我是否必须研究实施情况?是否有现成的清单?

解决方法

OCaml刚刚传递了Unix错误。每个操作的可能错误在Unix文档中。实际上,在我使用的类Unix系统上,它的记录相当合理。例如,您可以从命令行尝试man 2 chmod

但是,根据我的经验,并没有很好地(或根本没有)记录每个错误(逆关系)的可能原因。