having some problems with exception handling that have me pretty confused .... i'll include below the entire procedure where the exception handling occurs ...

    Procedure procAddNewAlbum;
        Var
            tmpAlbumName : AnsiString;
            tmpAlbumID : Longint;
            tmpNumTracks : Smallint;
            tmpLabel : AnsiString;
            tmpYear : Integer;
        Begin
            Write ('album name: ');
            ReadLn (tmpAlbumName);
            tmpAlbumID := ID_Generator;
            Write ('tracks: ');
            Try
                ReadLn (tmpNumTracks);
            Except
                On E: EInOutError do tmpNumTracks := 0;
            End;
            WriteLn ('tmpNumTracks = ',tmpNumTracks);
            Write ('label: ');
            ReadLn (tmpLabel);
            Write ('year: ');
            Try
                ReadLn (tmpYear);
            Except
                tmpYear := 0;
            End;
        End;

now, if i enter anything for tmpNumTracks that's not numeric (and therefore raises the exception) the following happens ...

        album name: test
        tracks: g
        tmpNumTracks = 0
        label: year: ^C

the exception code appears to be executed, but when the program "exits" the exception block it seems to be processing one line, then skipping one, then proceeding as normal ... i don't *think* i've made any syntax mistakes, and if i have i'm going to look rather silly ... :D

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

Reply via email to