Up

module Exn

: sig
#
type t = exn
include Pretty_printer.S with type t := t
#
exception Finally of t * t

Raised when finalization after an exception failed, too. The first exception argument is the one raised by the initial function, the second exception the one raised by the finalizer.

#
exception Reraised of string * t
#
val raise_without_backtrace : t -> _

Same as raise, except that the backtrace is not recorded.

#
val reraise : t -> string -> _
#
val reraisef : t -> ('a, unit, string, unit -> _) Pervasives.format4 -> 'a
#
val to_string : t -> string
#
val to_string_mach : t -> string
#
val protectx : f:('a -> 'b) -> 'a -> finally:('a -> unit) -> 'b

Executes f and afterwards executes finally, whether f throws an exception or not.

#
val protect : f:(unit -> 'a) -> finally:(unit -> unit) -> 'a
#
val handle_uncaught : exit:bool -> (unit -> unit) -> unit

handle_uncaught ~exit f catches an exception escaping f and prints an error message to stderr. Exits with return code 1 if exit is true. Otherwise returns unit.

#
val handle_uncaught_and_exit : (unit -> 'a) -> 'a

handle_uncaught_and_exit f returns f (), unless that raises, in which case it prints the exception and exits nonzero.

#
val reraise_uncaught : string -> (unit -> 'a) -> 'a
#
val does_raise : (unit -> _) -> bool

does_raise f returns true iff f () raises, which is often useful in unit tests.

#
val backtrace : unit -> string

Printexc.get_backtrace

#
val sexp_of_t : t -> Sexplib.Sexp.t
end