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,FREEMAIL_FROM, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1592759aa83d0d45 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-05-25 11:47:09 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!small1.nntp.aus1.giganews.com!nntp.giganews.com!nntp3.aus1.giganews.com!nntp.gbronline.com!news.gbronline.com.POSTED!not-for-mail NNTP-Posting-Date: Sun, 25 May 2003 13:47:10 -0500 Date: Sun, 25 May 2003 13:47:22 -0500 From: Wesley Groleau Reply-To: wesgroleau@despammed.com Organization: Ain't no organization here! User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en, es-mx, pt-br, fr-ca MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Suggestion for Ada 200x - Interface inheritance References: <0Pxza.699607$OV.652508@rwcrnsc54> <5ad0dd8a.0305240435.337d9373@posting.google.com> <5ad0dd8a.0305250612.ec54c23@posting.google.com> <3ED1039F.7010001@spam.com> In-Reply-To: <3ED1039F.7010001@spam.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: NNTP-Posting-Host: 216.117.18.52 X-Trace: sv3-Dc7xVN77e61Cp6Up7K4mNYiU0EfKzD0uWNlRirKomBFDslIKZfE7MeLUAZtbaB+FaDOIMD94774TDro!qCKZnj1PfHsm3R6diWapuC8vE5TLfXGdPi4GuD24gdKqqsYgtaylaAKcHvII8qeFWsWxO4ApAJwL!A25H X-Complaints-To: abuse@gbronline.com X-DMCA-Complaints-To: abuse@gbronline.com X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.1 Xref: archiver1.google.com comp.lang.ada:37763 Date: 2003-05-25T13:47:22-05:00 List-Id: >> Yeah. Pre- and post-conditions are easier, I guess, because they can't >> break current code, while the introduction of 'throws' ('raises'?), >> without some trick, would. Indeed. I was asked to fix an out of bounds exception in Java once. Chased an empty string down through several layers of the call stack till I found that the class that was supposed to get the string out of a database caught file not found by creating an empty database, and handled no such key in the database by returning an empty string. For reasons which would take up unnecessary bandwidth, the right thing to do was throw an exception instead of pretending everything is OK for a later crash. But that meant adding a throws clause to each of hundreds of files.