13.25 例外ハンドラ

例外ハンドラは、呼び出された例外を処理します。

例外ハンドラは、無名ブロック、サブプログラム、トリガーおよびパッケージの例外処理部で使用できます。

ここでのトピック

構文

セマンティクス

exception_handler

exception

事前定義の例外(表11-3 を参照)またはユーザー定義の例外(例外宣言を参照)の名前。

指定した例外がPL/SQLによって呼び出されると、それに関連付けられた文が実行されます。

OTHERS

ブロックの例外処理部で明示的に指定していないすべての例外を指定します。このような例外がPL/SQLによって呼び出されると、それに関連付けられた文が実行されます。

注意:

OTHERS例外ハンドラの最後の文には、RAISEまたはRAISE_APPLICATION_ERRORプロシージャの起動のいずれかを使用することをお薦めします。

この方法に従わない場合は、PL/SQL警告が有効になり、PLW-06009が表示されます。

ブロックの例外処理部では、WHEN OTHERS例外ハンドラはオプションです。これはブロックの例外処理部内の最後の例外ハンドラとして、1回のみ使用できます。

  • 例11-3複数の例外に対応した1つの例外ハンドラ

  • 例11-4例外ハンドラを共有する文のロケータ変数

  • 例11-6ZERO_DIVIDEを処理する無名ブロック

  • 例11-7ZERO_DIVIDEを回避する無名ブロック

  • 例11-10ユーザー定義の例外の宣言、呼出しおよび処理

  • 例11-14有効範囲を超えて伝播した例外が処理される場合

  • 例11-24例外ハンドラの実行と実行の終了

  • 例11-25例外ハンドラの実行と実行の継続

  • 例12-12FORALL例外の即時処理

  • 例12-13FORALL文が完了した後のFORALL例外の処理