Michael Van Canneyt wrote:

On Tue, 16 Mar 2004, kractor wrote:



spent a few moments going over the docs in the manual re: exception
handling. for some reason it just doesn't seem to be sinking in, as
nothing i've tried as of yet has managed to stop prog from crashing when
data in input that's of a different type than program is expecting
(string as opposed to integer, for example).

as i said, i'm pretty sure that its something really small and obvious,
i'll include a few lines here ... maybe someone can spot my mistake ...
pretty sure its the EConvertError and that there's a pre-defined error
type that I just haven't come across yet.

try
readln(NewAlbum.Year);
except
on EConvertError do NewAlbum.Year := 0;
end;



This should be:



try readln(NewAlbum.Year); except on E : EConvertError do NewAlbum.Year := 0; end;

Michael.

_______________________________________________
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal



tried your suggestion and when i attempted to input string when prog expecting integer value, it gave following error

An unhandled exception occurred at 0x004012CC :
EInOutError : Invalid input

so, i tried changing the EConvertError to EInOutError, little code paste follows

       try
           readln(NewAlbum.Year);
       except
           on E : EInOutError do NewAlbum.Year := 0;
       end;
       write('label: ');
       readln(NewAlbum.alLabel);
       write('tracks: ');
       readln(NewAlbum.NumTracks);

what's happening now is that when "invalid" data type is entered which triggers the exception handle, the program is "skipping" the readln(NewAlbum.alLabel) command and resuming apparently normal operations on the very next line [write('tracks: ');]. when valid data is entered, the program naturally doesn't trigger the exception handle and everything works normally.

_______________________________________________
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to