例外の使い方
例外を使用するとエラー処理を簡単化することができます。例えば、プログラムの中のどこか深いネストで発生した例外をまとめて1個所で処理できます。
例外処理は、try..exceptプロックを使用して記述します。次の例はファイルが見つからなかったときの処理を例外を使用して記述した例です。
program FileExcep;
uses
SysUtils;
{$APPTYPE CONSOLE}
var
f: Text;
s: string;
begin
try
AssignFile(f, 'TEXT1.TXT');
Reset(f);
Readln(f, s);
CloseFile(f);
except
on EInOutError do Writeln('ファイルを読み出せない。');
end;
end.
try..finallyを使用すると例外の発生に関係なく終了コードを実行させることができます。これは、割り当てたメモリを解放させたいときなどに便利です。
program TestTryFinal;
uses
SysUtils;
{$APPTYPE CONSOLE}
var
buffer: Pointer;
v: Integer;
a, i: Integer;
begin
GetMem(buffer, $10000);
a := 10;
writeln('GetMem(buffer, $10000);');
try
i := 0;
try
v := a mod i;
writeln('i,v = ',i, v);
except
on EDivByZero do writeln('EDiveByZero exception.');
end;
finally
FreeMem(buffer);
writeln('FreeMem(buffer)');
end;
end.