From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: How to get nice with GNAT? Date: Wed, 26 Nov 2014 14:06:24 +0100 Organization: cbb software GmbH Message-ID: References: <969708583438656051.436159nonlegitur-futureapps.invalid@reader80.eternal-september.org> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: nyHeW7QjJmC1odUjK4LkDA.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:23739 Date: 2014-11-26T14:06:24+01:00 List-Id: On Wed, 26 Nov 2014 12:55:39 +0100, Georg Bauhaus wrote: > On 26.11.14 08:35, Simon Wright wrote: >> Not an argument that applies to point-defence missile systems! > > That's good to know. I take it to mean that exceptions will less > frequently have this tendency to backfire, an effect that checking > return values in C can so easily produce: > > extern int foo(...); > > > if (foo(...) < 0) { > /* do something assuming that negative return values > are error codes. */ > > > And forgot overflow + wrap around. Ouch! > > This is another argument against > > when others => > > in Ada programs, too, unless there is a very good reason to include > a catch-all. If exceptions were under a contract, the list of possible exceptions to catch would be definite and quite small in most cases. So, actually, we could disallow "when others" for all subprograms having an exception contract and calling only such subprograms (statically). -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de