强制退出ocaml异步程序

时间:2017-07-25 15:07:37

标签: asynchronous ocaml

我想实现以下行为:

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的退出函数,我可以在此上下文中使用,或者更一般地说,这个函数会强制延迟。

1 个答案:

答案 0 :(得分:1)

函数Pervasives.exit的类型为int -> 'a。我不知道异步,所以我不知道使用这个功能是不是一个好计划。如果你想让事情小心翼翼,那么很容易相信它可能不是一个好的计划。