Module Traced.Unit

type t = unit =
  1. | ()
val unit : t
val unit_s : t Lwt.t
val unit_e : (t, 'a) Stdlib.result
val unit_es : (t, 'a) Stdlib.result Lwt.t
val equal : t -> t -> bool
val compare : t -> t -> int
val to_string : t -> string
val catch : ?catch_only:(exn -> bool) -> (unit -> unit) -> unit

catch f is f (), but exceptions are ignored and () is returned if one is raised.

You should only use catch when you truly do not care about what exception may be raised during the evaluation of f (). If you need to inspect the raised exception consider catch_f and if you need to pass it along consider Result.catch.

If catch_only is set, then only exceptions e such that catch_only e is true are caught.

Whether catch_only is set or not, this function never catches non-deterministic runtime exceptions of OCaml such as Stack_overflow and Out_of_memory.

val catch_f : ?catch_only:(exn -> bool) -> (unit -> unit) -> (exn -> unit) -> unit

catch_f f handler is f (). If f () raises an exception then handler is called.

No attempt is made to catch the exceptions raised by handler.

catch_only has the same behaviour and limitations as with catch.

val catch_s : ?catch_only:(exn -> bool) -> (unit -> unit Lwt.t) -> unit Lwt.t

catch_s f is f (). If f () is rejected or raises an exception, then the exception is ignored and it resolves to ().

catch_only has the same behaviour and limitations as with catch.