On Tue, 16 Mar 2004, kractor wrote:tried your suggestion and when i attempted to input string when prog expecting integer value, it gave following error
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
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