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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1094ba,86e8c626be2471ae X-Google-Attributes: gid1094ba,public X-Google-Thread: 103376,fc050a66c3b5d87d X-Google-Attributes: gid103376,public From: Geoff Bull Subject: Re: F9X twister & ADA (was: n-dim'l vectors) Date: 2000/04/12 Message-ID: <38F3F803.A4A56259@research.canon.com.au>#1/1 X-Deja-AN: 609950386 Content-Transfer-Encoding: 7bit References: <8cctts$ujr$1@nnrp1.deja.com> <38EA0440.1ECBC158@ncep.noaa.gov> <38ED4ECA.ADB698C9@sdynamix.com> <38F28A85.53809F39@sdynamix.com> <38F2C1DC.5538F9F0@research.canon.com.au> <5jJI4.297$PV.9915@bgtnsc06-news.ops.worldnet.att.net> <38F3D1D3.416B3493@research.canon.com.au> <85SI4.4008$fV.338113@bgtnsc05-news.ops.worldnet.att.net> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@research.canon.com.au X-Trace: cass.research.canon.com.au 955512802 1958 203.12.174.227 (12 Apr 2000 04:13:22 GMT) Organization: Canon Information Systems Research Australia Mime-Version: 1.0 NNTP-Posting-Date: 12 Apr 2000 04:13:22 GMT Newsgroups: comp.lang.fortran,comp.lang.ada Date: 2000-04-12T04:13:22+00:00 List-Id: James Giles wrote: > How do you *not* provide a > handler when you don't even know what it is that you're trying > not to handle? Documentation, tools and testing. > > In any case, for most of my own code I much prefer halting > immediately. You might prefer it, but I don't. Forced halting would suck from my point of view. > Most "graceful" termination involves doing > things that cover up evidence that might be needed to discover > the cause of the fault (closing files, deleting temporaries, leaving > the program counter and/or the registers in different states than > the context in which the error arose, etc.). It's only for code > written for naive public consumption that "graceful" termination > is appropriate. Actually, in my case the point of flushing files is to *not* throw away the evidence of where the program was up to when it crashed. Also graceful termination might be disabling of an impending missile launch, or doing a retry using a backup system, or sending a failure notice to a remote system. > >> Mystically skipping over several > >> levels of the call tree is messy. > > > >I don't understand what you mean here. > > I can't see any opportunity for confusion here. Ada exceptions are neither mystical nor messy, so I thought you must be talking about something else. > Yes, this means that when you add code which may > raise exceptions to a procedure, you have to recompile (and maybe > even rewrite) code which uses that procedure. This is no different > than any other case in which you changed a procedure in a way > in which its public (interface) properties have changed. Going back to your earlier example, if you decided to raise an exception in Z and you really did want to handle it in A (because of requirement of graceful operation for naive users), you would have to go back and modify procedures B .. Y to either handle or pass on the exception. > Or, are > you claiming that an exception is not a public property of the > procedure which raises it? No. I agree with your sentiments. But I can't think of a workable implemetation. Certainly the way Java does it can be a headache. Other difficulties with Java style exceptions in Ada have been previously discussed in comp.lang.ada. Cheers Geoff