8.6 Oracle JVMによる例外の処理方法

Java例外はオブジェクトであり、ネーミングと継承の階層があります。そのため、サブ例外(例外クラスのサブクラス)をスーパー例外(例外クラスのスーパークラス)のかわりに使用できます。

すべてのJava例外オブジェクトはtoString()メソッドをサポートしており、これは、オプションの文字列に連結した例外クラスの完全修飾名を戻します。一般に、この文字列には、例外条件に関するデータ依存情報が含まれています。通常、例外を構成するコードは、この文字列を例外に対応付けます。

Javaストアド・プロシージャでSQL文が実行されると、スローされた例外は、そのプロシージャに対してjava.sql.SQLExceptionのサブクラスとして作成されます。このクラスには、getErrorCode()およびgetMessage()メソッドがあり、これらのメソッドは、それぞれOracleエラー・コードおよびエラー・メッセージを戻します。

SQLまたはPL/SQLからコールされたストアド・プロシージャがJavaで捕捉されない例外をスローした場合は、次のエラー・メッセージが表示されます。

ORA-29532 Java call terminated by uncaught Java exception

このエラー・メッセージによって、捕捉されない例外が(SQL以外の例外を含めて)すべてレポートされます。