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=-2.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Thread: 103376,115cdbb394b3e615 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!proxad.net!freenix!enst.fr!melchior!cuivre.fr.eu.org!melchior.frmug.org!not-for-mail From: Marius Amado Alves Newsgroups: comp.lang.ada Subject: Re: Why can't you create a out of order subtype? Date: Wed, 2 Feb 2005 20:22:58 +0000 Organization: Cuivre, Argent, Or Message-ID: References: <1107301914.648240.237290@g14g2000cwa.googlegroups.com> NNTP-Posting-Host: lovelace.ada-france.org Mime-Version: 1.0 (Apple Message framework v619) Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Trace: melchior.cuivre.fr.eu.org 1107375663 95760 212.85.156.195 (2 Feb 2005 20:21:03 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Wed, 2 Feb 2005 20:21:03 +0000 (UTC) To: comp.lang.ada@ada-france.org Return-Path: In-Reply-To: X-Mailer: Apple Mail (2.619) X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at ada-france.org X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Xref: g2news1.google.com comp.lang.ada:8137 Date: 2005-02-02T20:22:58+00:00 >> declare >> M : Msg := Whatever; >> V : Vowelmsg; >> begin >> V := Vowelmsg'Value (Msg'Image (M)); >> -- if control reaches here then M is a vowel >> exception >> when Constraint_Error => -- M is not a vowel >> end; > > I don't think this is good style. The above code use exception for non > exceptional case. It uses exception as a if statement. Definitely > something > to avoid. No, not definitely. As you say it's a matter of style. This has come up before many times. It's the issue of using exceptions for logic in certain situations. There are two well established schools of thought on this. One says "no", the other says "yes". Obviously you belong to the former, and I to the latter. There are other respectful people of both schools other than you and I. At the "exceptional" workshop of Ada-Europe 2001 in Leuven this was very noticeable. Other situations where we the "yeses" find the use of exceptions for logic adequate include end of file detection. Also note that the idiom above is very similar to invalid data detection, where the use of exceptions is deemed adequate even in your school. Also note that the alternative idiom using Unchecked_Conversion hurts sensibilities in yet another school where the use of UC in this situation would be frowned upon. Also note that M failing to be a vowel can be considered exceptional = abnormal, a somewhat fuzzy notion. In sum, I neither agree or disagreed with you. To my eyes the exception idiom is acceptable here for all the stated reasons and more. But I accept the contrary view. Because there are fuzzy notions involved. My advice to the original poster is: just pick the idiom you 'feel' comfortable with, and carry on. Enrolment is gratis in either school :-)