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: 103376,a3ca574fc2007430 X-Google-Attributes: gid103376,public From: stt@houdini.camb.inmet.com (Tucker Taft) Subject: Re: Ada and Automotive Industry Date: 1996/12/17 Message-ID: #1/1 X-Deja-AN: 204621985 sender: news@inmet.camb.inmet.com (USENET news) x-nntp-posting-host: houdini.camb.inmet.com references: organization: Intermetrics, Inc. newsgroups: comp.lang.ada Date: 1996-12-17T00:00:00+00:00 List-Id: Robert Dewar (dewar@merv.cs.nyu.edu) wrote: : T.E.D. says : "Hmmm. Can I take this to mean that it is not a good idea to raise : predefined exceptions manually? Are predefined exceptions somehow : handled differently than user-defined ones?" : Yes, see RM 11.6 Hmmm... Language-defined *checks* (which can raise predefined exceptions) are handled specially. In particularly, they need not raise an exception at all if the otherwise "undefined" result would not be used by the rest of the computation, and if they are raised due to the failure of such a check, the "location" of the raise need not be precisely determinable. However, when an exception is raised explicitly, it makes no difference whether it is predefined or user-defined -- the rules are identical. Of course, once you get to a handler for a predefined exception, you don't know as much since it might be due to a failure of a language defined check (and hence might be imprecise), or it might be due to an explicit "raise" (in which case it is fully "precise"). -Tucker Taft stt@inmet.com http://www.inmet.com/~stt/ Intermetrics, Inc. Cambridge, MA USA