comp.lang.ada
 help / color / mirror / Atom feed
From: Larry Coon <larry@fs2.assist.uci.edu>
Subject: Re: Exception problem
Date: 1997/02/24
Date: 1997-02-24T00:00:00+00:00	[thread overview]
Message-ID: <3311FD32.2DDA@fs2.assist.uci.edu> (raw)
In-Reply-To: 1997Feb24.124153.1@eisner


Larry Kilgallen wrote:
> 
> In article <3311BFC4.7576@fs2.assist.uci.edu>, Larry Coon <larry@fs2.assist.uci.edu> writes:
> 
> > By the way, that brings up another question....that of when it's
> > appropriate to use exceptions.  In C++, for example, you wouldn't want
> > to throw an exception because your number should be positive and you got
> > a negative.  In C++, you're using an int to represent this number, and
> > for an int to be -3 is not an exceptional condition.  However, in Ada
> > subtypes and derived types allow you to declare integers for which -3
> > truly is an exceptional condition, making it very appropriate to raise
> > (see, I even got the terminology right!) an exception.
> >
> > Writing that code almost made me feel guilty for using exceptions the
> > wrong way, and I wanted to make sure I'm thinking about them in the
> > right way in Ada.
> 
> Implementations are likely to use hardware exception mechanisms and
> other non-speed-optimized techniques to implement something called
> an "exception" in any language.  Thus you should not count on using
> exceptions as a "normal" part of processing which is supposed to run
> efficiently.

My concern is not so much related to performance as it is to the
general  axiom (at least in C++) that exception handling is meant for
truly exceptional events, and that invalid input just doesn't qualify. 
The general rule in C++ is that exception handling shouldn't be used for
input validation.

However, given the more powerful type definition capabilities of Ada,
invalid input can create exceptional conditions that wouldn't be
exceptional in C++.  So I guess my question is, does that make it okay
to use exception handling for input validation in Ada?

Or, in cases such as keyboard input, should I go on the premise that the
user is inputing using a keyboard, keyboards produce characters, and
character input is what should be expected.  Therefore, the correct
thing to do is to accept character input, validate it, and then if it's
okay convert it to the appropriate type.  Granted, doing it the first
way is a lot easier....

Larry Coon
University of California
larry@fs2.assist.uci.edu




  reply	other threads:[~1997-02-24  0:00 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-02-18  0:00 Exception problem Larry Coon
1997-02-18  0:00 ` Michael Feldman
1997-02-19  0:00   ` Larry Coon
1997-02-19  0:00 ` Keith Allan Shillington
1997-02-19  0:00 ` Joerg Rodemann
1997-02-19  0:00   ` Mats Weber
1997-02-19  0:00 ` David C. Hoos, Sr.
1997-02-19  0:00   ` Robert Dewar
1997-02-19  0:00   ` Larry Coon
1997-02-22  0:00 ` Arthur Evans Jr
1997-02-24  0:00   ` Larry Coon
1997-02-24  0:00     ` Larry Kilgallen
1997-02-24  0:00       ` Larry Coon [this message]
1997-02-25  0:00         ` Fergus Henderson
1997-02-25  0:00     ` Do-While Jones
1997-03-09  0:00       ` John Volan
1997-03-09  0:00         ` Robert Dewar
1997-03-12  0:00         ` Keith Thompson
1997-02-25  0:00   ` Robert I. Eachus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox