From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id AAA08601; Thu, 20 Nov 2003 00:10:04 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id AAA08427 for ; Thu, 20 Nov 2003 00:10:03 +0100 (MET) Received: from rabelais.socialtools.net (rabelais.socialtools.net [81.2.94.243]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id hAJNA2111308 for ; Thu, 20 Nov 2003 00:10:02 +0100 (MET) Received: by rabelais.socialtools.net (Postfix, from userid 108) id AAEC023327; Wed, 19 Nov 2003 23:10:01 +0000 (GMT) Received: from socialtools.net (chaucer.socialtools.net [81.2.94.242]) by rabelais.socialtools.net (Postfix) with ESMTP id 072C1232DA; Wed, 19 Nov 2003 23:09:59 +0000 (GMT) Message-ID: <3FBBF847.5060801@socialtools.net> Date: Wed, 19 Nov 2003 23:09:59 +0000 From: Benjamin Geer User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-gb, en, fr, it MIME-Version: 1.0 To: Caml Mailing List Cc: rich@annexia.org Subject: Re: [Caml-list] GC and file descriptors References: <20031119165408.GA16427@redhat.com> <6F407D14-1AB4-11D8-8941-00039310CAE8@inria.fr> <20031119214503.GA18822@redhat.com> In-Reply-To: <20031119214503.GA18822@redhat.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on rabelais.socialtools.net X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham version=2.60 X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 api:01 moderately:01 roulette:99 descriptors:01 worse:03 wrote:03 interface:03 library:03 badly:03 exceptions:04 exceptions:04 academia:04 reasonably:04 functions:05 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Richard Jones wrote: >>>This is the problem with checked exceptions in Java: the set of >>>exceptions that can be thrown is an implementation detail which is >>>exposed unnecessarily through the API. >> >>IMO it is part of the interface, just like the return type of the >>functions. > > I think in academia you can say these things. But on the sprawling > real projects, badly managed, written by poorly skilled programmers, > checked exceptions are a really bad idea. (Trust me on this one, I've > worked on several such projects). I design moderately large Java projects for a living, and I think checked exceptions are the only thing that forces poorly skilled and indifferent programmers to do any error handling at all. When a designer establishes a sensible policy regarding exceptions, checked exceptions make it possible to be reasonably confident that (nearly) all error conditions are handled in a sane manner. On a large project, this is a precious advantage. There's nothing worse than using a library without having any idea what exceptions it might throw. It's like playing Russian roulette. Ben ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners