RAISE
文は、PL/SQLブロックまたはサブプログラムの通常の実行を停止させ、例外ハンドラに制御を移します。
ZERO_DIVIDE
、NO_DATA_FOUND
などの事前定義済の例外、またはユーザーが名前を付けたユーザー定義の例外をRAISE
文で呼び出すことができます。
構文
raise_statement ::=
キーワードとパラメータの説明
exception_name
事前定義済の例外またはユーザー定義の例外を識別します。 事前定義の例外のリストは、「事前定義のPL/SQL例外」を参照してください。
使用上の注意
エラーが原因で処理を続行できなくなった場合にのみ、PL/SQLブロックまたはサブプログラムで例外を呼び出してください。 指定した例外に対するRAISE
文は、その例外の有効範囲内であれば任意の場所にコーディングできます。
例外が呼び出されたときに、PL/SQLがその例外のハンドラをカレント・ブロックで発見できない場合は、ハンドラが見つかるまで、または検索するブロックがなくなるまで、例外が1つずつ外側のブロックに伝播していきます。 ハンドラが見つからなかった場合、PL/SQLはホスト環境に、「未処理例外」エラーを戻します。
例外ハンドラの中のRAISE
文で例外名を省略すると、現行の例外を再度呼び出すことができます。 これによって、初期の対処措置(問題のログを記録するなど)を行ってから、より広範囲な対処を行う別のハンドラに制御を渡すことができます。 例外が再度呼び出された場合、最初に検索されるブロックは、カレント・ブロックではなく外側のブロックです。
関連トピック