19.22 Module Printexc: a catch-all exception handler

val catch: ('a -> 'b) -> 'a -> 'b
Printexc.catch fn x applies fn to x and returns the result. If the evaluation of fn x raises any exception, the name of the exception is printed on standard error output, and the programs aborts with exit code 2. Typical use is Printexc.catch main (), where main, with type unit->unit, is the entry point of a standalone program. This catches and reports any exception that escapes the program.
val print: ('a -> 'b) -> 'a -> 'b
Same as catch, but re-raise the stray exception after printing it, instead of aborting the program.
val to_string : exn -> string
Printexc.to_string e returns a string representation of e.