例外の使い方
例外を使用するとエラー処理を簡単化することができます。例えば、プログラムの中のどこか深いネストで発生した例外をまとめて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.