Hi, > Personally I've found that you should only throw those exceptions > which can be caught in a single place in the program. By this I mean > that an exception such as Not_found shouldn't be thrown, and instead > it would be better to use an option type (for stdlib functions which > throw Not_found, you have to be _very_ careful that the exception > cannot "escape").
Yes, I agree. As an illustration, dictionary lookup functions such as Map.find should return an option type, but use exceptions for truly exceptional circumstances that no sane programmer should have to watch for at every single invocation (say, "raise Dictionary_eaten_by_bears"). Cheers, Dario Teixeira _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs