home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / sampler / 03 / exit / errshel.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-10-19  |  884 b   |  41 lines

  1. PROGRAM ErrorShell;
  2.  
  3. { Demonstrate how to write a custom halt and
  4.   runtime error handler. }
  5.  
  6. VAR   savedExitProc : Pointer;  { Old ExitProc value }
  7.       num : integer;            { Test number }
  8.  
  9.  
  10. {$F+} PROCEDURE CustomExit; {$F-}
  11.  
  12. { Custom exit and runtime error handler }
  13.  
  14. BEGIN
  15.  
  16.    IF ( exitCode <> 0 ) AND ( errorAddr = NIL ) THEN
  17.    BEGIN
  18.       Writeln;
  19.       Writeln( 'Program halted!' );
  20.       Writeln( 'Exit code = ', exitCode )  { Display halt code }
  21.    END; { if }
  22.  
  23.    exitProc := savedExitProc    { Restore saved exitProc pointer }
  24.  
  25. END; { CustomExit }
  26.  
  27.  
  28. BEGIN
  29.  
  30.    savedExitProc := exitProc;   { Save ExitProc pointer }
  31.    exitProc := @CustomExit;     { Install custom error procedure }
  32.  
  33.    Writeln;
  34.    Writeln( 'Welcome to ErrorShell' );
  35.    Writeln;
  36.    Write( 'Enter an integer value: ' );
  37.    Readln( num );
  38.    Halt( num )
  39.  
  40. END.
  41.