Ok so it seems Printexc is not the way to go... Can you make sense out of this sentence in catch's documentation then? "This function is deprecated: the runtime system is now able to print uncaught exceptions as precisely as|Printexc.catch|does" In the toplevel, exceptions are printed in a sensible way, i.e. their arguments is printed as far as it can go respecting abstract types: # type t = A | B;; # exception Bla of t;; # raise (Bla A);; Exception: Bla A. Also it honors my #install_printer when printing arguments. If I compile the same code, I get: Fatal error: exception Exc.Bla(0) It seems there is a very ad-hoc, type-unaware exception handler in compiled code (byterun/printexc.c:caml_format_exception?) that can't be changed and I was hoping Printexc would do that for me. It seems not; so, no other way to change the global catcher? Thanks, -m Le 04/13/2012 11:18 AM, Gabriel Scherer a écrit : > It seems Printexc.register_printer affects the other Printexc.* > functions, not the way the toplevel itself (or the runtime system more > generally) handles uncaught exceptions. > > # Printexc.register_printer begin function Not_found -> Some "hello" | > _ -> None end;; > - : unit = () > # (fun () -> raise Not_found) ();; > Exception: Not_found. > # Printexc.print (fun () -> raise Not_found) ();; > Uncaught exception: hello > Exception: Not_found. > > > On Fri, Apr 13, 2012 at 11:12 AM, Matthias Puech wrote: >> Hello, >> >> Is there a way to change printing of uncaught exceptions in the toplevel and >> in (native/bytecode, 3.12) compiled code without wrapping the whole code in >> a try ... with or in Printexc.catch? >> >> Printexc.catch's documentation says it is deprecated and that the runtime >> system should be able to print exceptions the way they were registered with >> Printexc.register_printer, yet >> >> # Printexc.register_printer begin function Not_found -> Some "hello" | _ -> >> None end;; >> # raise Not_found;; >> Exception: Not_found. >> >> (* I would expect it to respond [Exception: hello] *) >> >> Do I miss something here? >> Thanks in advance, >> -m >> >> -- >> Caml-list mailing list. Subscription management and archives: >> https://sympa-roc.inria.fr/wws/info/caml-list >> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners >> Bug reports: http://caml.inria.fr/bin/caml-bugs >> >