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,1e4280c6ade7eb23 X-Google-Attributes: gid103376,public From: "Corey Ashford" Subject: Re: Exception types? Date: 1998/06/15 Message-ID: <6m4mc5$lbr$1@usenet.rational.com>#1/1 X-Deja-AN: 363040413 References: <3584F47B.3ADF7442@elca-matrix.ch> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: Rational Software Newsgroups: comp.lang.ada Date: 1998-06-15T00:00:00+00:00 List-Id: Mats Weber wrote in message <3584F47B.3ADF7442@elca-matrix.ch>... >Brian Rogoff wrote: > >> It isn't really a workaround, as you haven't really parameterized the >> package by an exception, and you can't pass that package as a generic >> formal package parameter. Mats workaround involved passing a success/failure >> function (an exception "wrapper"), which is a little better in the >> particular case I'm interested in. > >This is not true, or at least inaccurate (I don't know what you mean by "a >success/failure function" or an exception "wrapper"). > >My proposal is to add parameters to exceptions, as in Modula-3 (and in Ada 95, >with the IMO ridiculous limitation to strings of 200 characters). You've misread the 200 character limitation in Ada95. The LRM doesn't allow implementations to limit the string length unless you're using the Ada.Exceptions.Save_Occurrence *procedure* (as opposed to the function). In all other cases, the string can be of arbitrary length. > >In one of the 9X Mapping documents, there was an extension to Ada's exceptions >that essentially made them part of the type system and you could derive them >much as you can derive types, thus creating a hierarchy of exceptions. > >> [...] but I was wondering what the thinking was >> behind not having typed exceptions to begin with in Ada 83. I imagine the >> reason for not having them in Ada 95 could be upward compatibility. > >The proposal was in the mapping, but was removed. Maybe someone who >participated actively in the language design can tell us why ? You can throw an Ada.Exceptions.Exception_Id type via the Ada.Exceptions.Raise_Exception procedure. This allows a program to throw dynamically named exceptions (because Exception_Id's can be passed around). Hope this helps - Corey