|
@@ -1,5 +1,7 @@
|
|
program testexceptions;
|
|
program testexceptions;
|
|
|
|
|
|
|
|
+{$mode objfpc}
|
|
|
|
+
|
|
Type
|
|
Type
|
|
TAObject = class(TObject)
|
|
TAObject = class(TObject)
|
|
a : longint;
|
|
a : longint;
|
|
@@ -27,11 +29,11 @@ Procedure DoTryFinally (Level : Longint; DoRaise : Boolean);
|
|
|
|
|
|
Var Raised,Reraised : Boolean;
|
|
Var Raised,Reraised : Boolean;
|
|
I : Longint;
|
|
I : Longint;
|
|
-
|
|
|
|
|
|
+
|
|
begin
|
|
begin
|
|
Try
|
|
Try
|
|
writeln ('Try(',level,') : Checking for exception');
|
|
writeln ('Try(',level,') : Checking for exception');
|
|
- If Level=MaxLevel then
|
|
|
|
|
|
+ If Level=MaxLevel then
|
|
begin
|
|
begin
|
|
if DoRaise then
|
|
if DoRaise then
|
|
begin
|
|
begin
|
|
@@ -49,7 +51,7 @@ begin
|
|
finally
|
|
finally
|
|
Writeln ('Finally (',level,'): Starting code.');
|
|
Writeln ('Finally (',level,'): Starting code.');
|
|
end;
|
|
end;
|
|
- writeln ('Out of try/finally at level (',level,')');
|
|
|
|
|
|
+ writeln ('Out of try/finally at level (',level,')');
|
|
end;
|
|
end;
|
|
|
|
|
|
Procedure DoTryExcept (Level : Longint; DoRaise : Boolean);
|
|
Procedure DoTryExcept (Level : Longint; DoRaise : Boolean);
|
|
@@ -57,11 +59,11 @@ Procedure DoTryExcept (Level : Longint; DoRaise : Boolean);
|
|
Var Raised : Boolean;
|
|
Var Raised : Boolean;
|
|
I : Longint;
|
|
I : Longint;
|
|
Caught : TObject;
|
|
Caught : TObject;
|
|
-
|
|
|
|
|
|
+
|
|
begin
|
|
begin
|
|
Try
|
|
Try
|
|
writeln ('Try(',level,') : Checking for exception');
|
|
writeln ('Try(',level,') : Checking for exception');
|
|
- If Level=MaxLevel then
|
|
|
|
|
|
+ If Level=MaxLevel then
|
|
if DoRaise then
|
|
if DoRaise then
|
|
begin
|
|
begin
|
|
Writeln ('Try(',level,'): Level ',maxlevel,', raising exception.');
|
|
Writeln ('Try(',level,'): Level ',maxlevel,', raising exception.');
|
|
@@ -80,7 +82,7 @@ begin
|
|
On E : TObject do Writeln ('Caught object ',E.ClassName);
|
|
On E : TObject do Writeln ('Caught object ',E.ClassName);
|
|
// writeln ('Except (',level,') : Exception caught by default handler');
|
|
// writeln ('Except (',level,') : Exception caught by default handler');
|
|
end;
|
|
end;
|
|
- writeln ('Out of try/except at level (',level,')');
|
|
|
|
|
|
+ writeln ('Out of try/except at level (',level,')');
|
|
end;
|
|
end;
|
|
|
|
|
|
Procedure DoMix (Level : Longint; DoRaise : Boolean);
|
|
Procedure DoMix (Level : Longint; DoRaise : Boolean);
|
|
@@ -88,12 +90,12 @@ Procedure DoMix (Level : Longint; DoRaise : Boolean);
|
|
Var Raised : Boolean;
|
|
Var Raised : Boolean;
|
|
I : Longint;
|
|
I : Longint;
|
|
Caught : TObject;
|
|
Caught : TObject;
|
|
-
|
|
|
|
|
|
+
|
|
begin
|
|
begin
|
|
Try
|
|
Try
|
|
Try
|
|
Try
|
|
writeln ('Try(',level,') : Checking for exception');
|
|
writeln ('Try(',level,') : Checking for exception');
|
|
- If Level=MaxLevel then
|
|
|
|
|
|
+ If Level=MaxLevel then
|
|
if DoRaise then
|
|
if DoRaise then
|
|
begin
|
|
begin
|
|
Writeln ('Try(',level,'): Level ',maxlevel,', raising exception.');
|
|
Writeln ('Try(',level,'): Level ',maxlevel,', raising exception.');
|
|
@@ -119,7 +121,7 @@ begin
|
|
else
|
|
else
|
|
writeln ('Except (',level,') : Exception caught by default handler');
|
|
writeln ('Except (',level,') : Exception caught by default handler');
|
|
end;
|
|
end;
|
|
- writeln ('Out of try/except at level (',level,')');
|
|
|
|
|
|
+ writeln ('Out of try/except at level (',level,')');
|
|
end;
|
|
end;
|
|
|
|
|
|
function _dotryfinally : boolean;
|
|
function _dotryfinally : boolean;
|
|
@@ -193,6 +195,6 @@ begin
|
|
dotryfinally;
|
|
dotryfinally;
|
|
Finish;
|
|
Finish;
|
|
Writeln ('Testing Try/Finally with raise');
|
|
Writeln ('Testing Try/Finally with raise');
|
|
- Start ('This one should end with an error message !!.');
|
|
|
|
|
|
+ Start ('This one should end with an error message !!.');
|
|
DoTryFinally (1,True);
|
|
DoTryFinally (1,True);
|
|
end.
|
|
end.
|