14.27 例外ハンドラ

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

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

ここでのトピック

構文

セマンティクス

exception_handler

exception

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

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

OTHERS

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

注意:

OTHERS例外ハンドラの最後の文は、RAISEにするか、プラグマSUPPRESSES_WARNING_6009のマークを付けたサブルーチンの起動にすることをお薦めします。

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

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

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

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

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

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

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

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

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

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

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

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