Check out and contribute to CodePedia, the wiki for developers.

View \ERRTEST.PAS

ManuSoft MkErr Error device for Turbo Pascal 6.0

Submitted By: Unknown
Rating: (Not rated) (Rate It)


program errtest;

uses mkerr;

var f:text;
    b:byte;

procedure doerr2(i:integer);
begin
 if errset then begin
  writeln('fail again, next try.. ',i);
  dec(i);
  if i<1 then
     errfree;
 end;
 writeln(f,'DoErr2 i=',i);
 errfree;
end;

procedure doerr1;
begin
 if errset then begin
  writeln(' Something went wrong.. exiting ');
  errfree;
  exit;
 end;
 writeln('DoErr1, calling DoErr2..');
 doerr2(3);
 errfree;
end;

function doerr3(s:string;b:byte):byte;
begin
 doerr3:=9;
 writeln('DoErr3. clearing error device . . ');
 errfree;
 close(f);
end;

begin
 if errset then begin
  writeln('Program failure, retrying..');
  assign(f,'CON');
  rewrite(f);
 end;
 doerr1;
 doerr2(4);
 b:=doerr3('99',33);
 writeln('Err3 closed file f. And error handler.');
 if errset then begin
  writeln('Well, seems someone already shut down the file');
  continue;
 end;
 close(f);
 errfree;
 close(f); {This is just to show you runtime errors occurs when}
           {error device is inactive..}
 done;
end.

ERRTEST:
line program                   errordevice
40: begin                     inactive
41if errset..               SET 1. level error handler. return false
46:  doerr1;
22:   if errset..               SET 2. level error handler. return false
27:   writeln..
28:   doerr2(3)
10:    if errset..               SET 3. level error handler. return false
16:    writeln(f,..               ERROR. File not open. go to last handler
11:     writeln('fail..
12:     dec(i)
13:     if i<1 then   {i=2}
15:    end;
16:    writeln(f,..               ERROR. File not open. go to last handler
11:     writeln('
fail..
12:     dec(i)
13:     if i<1 then   {i=1}
15:    end;
16:    writeln(f,..               ERROR. File not open. go to last handler
11:     writeln('fail..
12:     dec(i)
13:     if i<1 then   {i=0}
14:      errfree;                CLEAR 3. level error handler, active is 2.
15:    end;
16:    writeln(f,..              ERROR. File not open. go to last handler
23:    writeln('
Someth..
24:    errfree;                 CLEAR 2. level error handler, active is 1.
25:    exit;
30:   end; {of doerr1}
47:   doerr2(4)
10:    if errset..              SET 2. level error handler. return false
16:    writeln(f,..              ERROR. File not open. go to last handler
11:     writeln('fail..
12:     dec(i)
13:     if i<1 then   {i=3}
15:    end;
16:    writeln(f,..              ERROR. File not open. go to last handler
11:     writeln('
fail..
12:     dec(i)
13:     if i<1 then   {i=2}
15:    end;
16:    writeln(f,..              ERROR. File not open. go to last handler
11:     writeln('fail..
12:     dec(i)
13:     if i<1 then   {i=1}
15:    end;
16:    writeln(f,..              ERROR. File not open. go to last handler
11:     writeln('
fail..
12:     dec(i)
13:     if i<1 then   {i=0}
14:      errfree;               CLEAR 2. level error handler, active is 1.
15:    end;
16:    writeln(f,..            ERROR. File not open. go to last handler
42:   writeln('Progr..
43:   assign..
44:   rewrite..
45:  end;

46:  doerr1;
22:   if errset..              SET 2. level error handler. return false
27:   writeln..
28:   doerr2(3)
10:    if errset..              SET 3. level error handler. return false
16:    writeln(f,..              OK. File is open.
17:    errfree;                 CLEAR 3. level error handler, active is 2.
18:   end;
29:   errfree;                 CLEAR 2. level error handler, active is 1.
30:  end;
47:  doerr2(4)
10:   if errset..              SET 2. level error handler. return false
16:   writeln(f,..              OK. File is open.
17:   errfree;                CLEAR 2. level error handler, active is 1.
18:  end;
48:  b:=doerr3(..
34:   doerr3:=3;
35:   errfree;               CLEAR 1. level error handler, inactive
36:   close(f);              OK. File open.
37:  end;
49:  writeln('
Err3 closed..
50if errset..             SET 1. level error handler. return false
54close(f);                ERROR. File not open. go last handler.
51:   writeln('Well..
52:   continue;               JUMP back where error occured.
55:  errfree;                CLEAR 1. level error handler, inactive
56:  close(f);               ERROR. Handler inactive. Runtime error.

corner
© 1996-2008. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Publisher: Lars Hagelin.
bootstrapLabs Logo A bootstrapLabs project.