我想实现以下行为:
let x =
try
do_some_computation ()
with
| Some_error -> exit_my_program ()
in
...
当然,我可以提出一个例外:
let exit_my_program () = failwith "...."
但是,我想要像:
let exit_my_program () =
Print.printf "some error message\n";
exit 1
我遇到的问题是exit 1
的类型为'a Deferred.t
,而且不会进行类型检查。我想知道是否存在类型为'a
的退出函数,我可以在此上下文中使用,或者更一般地说,这个函数会强制延迟。
答案 0 :(得分:1)
函数Pervasives.exit
的类型为int -> 'a
。我不知道异步,所以我不知道使用这个功能是不是一个好计划。如果你想让事情小心翼翼,那么很容易相信它可能不是一个好的计划。