From: taurus!atlas!erickson@lll-winken.llnl.gov (David Erickson)
Subject: Re: DATA_ERROR exception problem
Date: 29 Oct 92 21:26:10 GMT [thread overview]
Message-ID: <6826@atlas.cs.nps.navy.mil> (raw)
In article <X7D8JTH@math.fu-berlin.de> dww@inf.fu-berlin.de writes:
>I want to write a compeletly safe input procedure for integers:
>I GET an integer, and if DATA_ERROR is raised, I want to loop
>around until I get a decent answer.
>My problem is that DATA_ERROR is raised on two different conditions:
>an integer being illegal, i.e. out of bounds, or an illegal
>character being encountered (such as when I enter "1.0" or "z").
>The problem ist that in the former case, the input buffer has been
>emptied (all digits read); in the latter, the illegal character
>(and all following characters) remain in the input buffer.
>Is there any other way to do this besides reading in the
>input as a string and patching together an integer myself :-( ?
Well, you could read in the input as a string and use the INTEGER_IO
GET procedure that reads an integer from a string.
Then your exception handling would have to parse the string to
discover the reason.
>Stupid me wanted to introduce my beginners to exceptions from the
>start - we specified type-safe input, and I expected it to be
>relatively straight-forward to implement in Ada. What am I missing?
A beginner's perspective: beginners can break *anything*.
-Dave Erickson
next reply other threads:[~1992-10-29 21:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
1992-10-29 21:26 David Erickson [this message]
-- strict thread matches above, loose matches on Subject: below --
1992-11-06 3:54 DATA_ERROR exception problem Michael Feldman
1992-11-01 16:55 Michael Feldman
1992-10-31 6:34 munnari.oz.au!yoyo.aarnet.edu.au!news.adelaide.edu.au!cs.adelaide.edu.au!
1992-10-29 10:44 bloom-picayune.mit.edu!snorkelwacker.mit.edu!ira.uka.de!ira.uka.de!math.f
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox