JavaからOracleストアド・プロシージャをコールしていて、CallableStatement
を実行すると入力パラメータ値を送信して出力パラメータ値をJavaに戻すことは問題ありません。Javaからストアド・プロシージャをコール - ORAエラーでスローされない例外
私はCallableStatement
のexecute
方法を(エラーを強制的に)して実行するストアドプロシージャにいくつかの悪いデータを送信するときしかし、私はSQLException
が私の方法でスローすることを期待したいです。これは起こらず、コードは通常通り続きます。
SQL Developerを使用してストアドプロシージャを実行すると、ログウィンドウにOracleエラーメッセージ(コードORA-06502
)が明瞭に表示されます。だから私のJavaコードがエラーメッセージをキャッチしていないのは私にとって謎です。
この動作の原因は何ですか?ストアドプロシージャはエラーを正しくスローしません。スローされた例外を認識しないJavaのtry/catch
ですか?残念ながら私はエラーをどのように処理しているかを確認するためにストアドプロシージャコードにアクセスすることはできません。
どのポインタも高く評価されています。
SQLExceptionがスローされるとは思わないが、ストアドプロシージャが明示的にコード化されているとは限りません。 https://community.oracle.com/thread/129500?start=0&tstart=0。例外がスローされた場合、JVMがそれをキャッチすることは間違いありません。 – duffymo
プロシージャのコードと、プロシージャを呼び出すJavaコードを表示します。 – Dazak