[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    {
    JON JASIUNAS

    I never use them. if a Program bombs because a disk is full, I just
    > catch the run-time error in an Exit proc and report so (I/O-checking
    > must be set on, of course).

    >I am curious, How do you go about Catching the Run-Time Error. Doesn't it
    >just say Runtime Error 103 ?????:?????

    You can catch the run-time errors by linking into the Exit chain.
    Here's a small example:
    }

    Unit ErrTrap;

    Interface

    Implementation

    Var
      OldExit : Pointer;

    Procedure NewExit; Far;  { MUST be far! }
    begin
      if ErrorAddr <> nil then
      begin
        {-Display custom run-time error message }
        WriteLn('Fatal error #', ExitCode);
        WriteLn('Address = ', Seg(ErrorAddr^), ':', Ofs(ErrorAddr^));
        {-Cancel run-time error so you don't get the default message, too }
        ErrorAddr := nil;
        {-Zero the errorlevel }
        ExitCode  := 0;
      end;
      ExitProc := OldExit;
    end;

    begin
      OldExit  := ExitProc;
      ExitProc := @NewExit;
    end.

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]