Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
exceptions suggestions
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Fabrice Le Fessant <lefessan@t...>
Subject: exceptions suggestions

  A few months ago, someone asked why exceptions can't be redefined
in different modules. For example, if I create two modules M and N,
and I want only one module interface for them, I will create a module
exception Toto of int
let x = 3

val x : int
exception Toto of int
let x = N.x
exception Toto = M.Toto 

but the last line is not valid in Objective-Caml. What should I do ?

  In ocaml, there is a directive install_printer to install special
printers for abstract types. I think it would be interesting to have
the same feature in the standard runtime for uncaught
exceptions. Indeed, it is not always possible to know exactly where
an exception is raised (in particular if you develop a library that
will be used by other users) to install appropriate try ...with
strutures to correctly print the exception arguments (This would be
useful in Dynlink and Unix which already give printers for their
errors, and in my Xlib, where XError exceptions carry important
informations (such as RequestOpcode, etc)).

  I know that the uncaught exception is hard-coded in C. However, the
compiler could create a try ... with structure around each module...

- Fabrice