6

以下可能吗?

try
  (* danger zone *)
with Not_found e -> 
  (* code to handle not found *)
with t -> 
  (* code to handle all other issues *)

如果我将它输入到顶层,我会在第二个with. 也许有一些我不知道的语法?

try是预先添加另一个以匹配每个的首选方法with吗?

4

2 回答 2

15

with部分是一系列模式,因此您可以这样编写:

try
    (* dangerous code area *)
with
    | Not_found -> (* Not found handling code *)
    | t -> (* Handle other issues here *)
于 2012-04-24T23:58:42.687 回答
5

with是一个match表达式;您不会对多个模式重复它,而是使用|分隔每个模式 -> 表达式,就像使用match.

于 2012-04-24T23:57:56.080 回答