例外の生成

提供: RAD Studio
移動先: 案内検索

Try ブロックの記述 への移動


破壊的なエラー状態を示すには、そのエラー状態を記述する例外オブジェクトのインスタンスを構築し、予約語 raise を呼び出すことによって、例外を発生させます。

例外を発生させるには、予約語 raise を呼び出し、それに続いて、例外オブジェクトのインスタンスを記述します。これにより、例外が特定のアドレスから来るように確立されます。例外ハンドラが実際に例外を処理した場合には、例外インスタンスを破壊することで終わりになるため、開発者がこれを行う必要はありません。

たとえば、次の宣言があるとします:

type
  EPasswordInvalid = class(Exception);

raise を EPasswordInvalid インスタンスを呼び出すことにより、いつでも「不正なパスワード」であることを示す例外を発生させることができます。次のようになります:

if Password <> CorrectPassword then
  raise EPasswordInvalid.Create('Incorrect password entered');

例外発生すると、System ユニット内の ErrorAddr 変数は、アプリケーションが例外を発生させたアドレスに設定されます。例外ハンドラ内で ErrorAddr を参照して、例えば、エラーが起きたユーザーに通知することができます。また、例外が発生した際、ErrorAddr に現れる値を raise 句で指定することもできます。

警告: 値を、ErrorAddr そのものに割り当ててはいけません。これは、読み取り専用を前提としています。

例外のエラー アドレスを指定するには、例外インスタンスの後に予約語 at を追加し、続いて識別子などアドレス式を続けます。

関連項目