[例外処理]

◆例外処理

◎書式1
try
 実行文1;
except
 実行文2;    //実行文1で例外が発生した場合のみ実行されます
end
◎書式2
try
 実行文1;
finaly
 実行文2;    //実行文1で例外が発生されなくても実行されます
end
◎書式3
try
  try
   実行文1;
  except
   実行文2;    //実行文1で例外が発生した場合のみ実行されます
  end
finaly
 実行文3;      //実行文1で例外が発生されなくても実行されます
end
try節でExit分を呼び出すと、finaly節が実行されます ◆例外クラス 発生した例外の種類に応じて処理を分岐させることができます
例外内容例外クラス
メモリ不足EOutMemory
入出力エラーEInOutError
整数値を0で除算EDivByZero
実数値を0で除算EZeroDivide
実数値でオーバーフローEOverflow
無効な数値演算(負の数の平方根など)EInvalidOp
変換エラーEConvertError
無効なアドレスへのアクセスEAccessViolation
無効なポインタの解放EInvalidPointer
キャスト失敗EInvalidCast
スタックオーバーフローEStackOverflow
0除算の例外処理です
Program tips0046;
{$APPLTYPE CONSOLE}
var
 a,b,c:Integer;
begin
 a:=3; b:=0;
 try
  c:=a/b;
  WrileLn(a,'/',b,'=',c);
 except
  on EDivByZero do
   WriteLn('0で除算しました。')
  else
   WriteLn('その他のエラーです。')
 end
end.