comp.lang.ada
 help / color / mirror / Atom feed
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

             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