[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]