保護ブロックの定義
例外処理:インデックス への移動
例外に対応するには、try ブロックに例外が発生する可能性のあるステートメントを配置します。 これらのステートメントの 1 つで例外が発生する場合は、該当する種類の例外を処理する例外ハンドラに制御が移り、その後、このブロックから抜けます。 例外ハンドラは例外を捕捉し、対応するアクションを指定します。 try ブロックと例外ハンドラを使用することによって、エラー チェックとエラー処理をアルゴリズムのメイン フローから除外でき、結果としてコードは読みやすく、簡単になります。
保護ブロックは、キーワード try で開始します。 例外ハンドラは try ブロックの直後に必要です。 キーワード except を使用し、try ブロックの終わりであることを示します。 この構文を以下のコードで説明します。 SetFieldValue メソッドのエラーにより、EIntegerRange 例外が発生する場合は、実行は例外処理部分にジャンプし、エラー メッセージが表示されます。 実行はブロックの外から再開されます。
try
SetFieldValue(dataField, userValue);
except
on E: EIntegerRange do
ShowMessage(Format('Expected value between %d and %d, but got %d',
E.Min, E.Max, E.Value));
end;
{ 実行は保護ブロックの外のここから再開される } .
例外ハンドルブロック(「finally ブロックの記述」を参照)を、try ブロックの直後に配置する必要があります。例外処理ブロックには、try ブロックのステートメントが生成する可能性があるそれぞれの例外に対するハンドラを組み込む必要があります。