4

JDBC を介して jsp から SQL Server 2005 と対話しています (これは実際のプロジェクトではなく割り当てです)。使用しているデータベースにトリガーを作成しました。このトリガーの実行時に特定の条件が満たされない場合、raiserror() を介してエラーを発生させます。JDBC 経由で SQL Server クエリを呼び出す実際のページにこのエラーを表示したいのですが、現在、SQLException.getMessage() の結果を出力すると、次のデフォルト メッセージが表示されます。

トランザクションはトリガーで終了しました。バッチは中止されました。

トリガーコードで実際に raiserror に渡したテキストを抽出する方法を知っている人はいますか? 私はすでに試しました:

  • SQLException.getState()
  • SQLException.getNextException()
  • SQLException.getCause()
  • SQLException.toString()
4

2 に答える 2

9

私はそれを考え出した。この問題は、raiserror() を呼び出すときに選択した重大度に関連していました。10 を入れる例を見たので、この引数に 10 を渡しましたが、エラー テキストが SQLException に渡されるためには、重大度が 11 以上である必要があります。重大度を変更すると、すべて正常に動作します。他の誰かが同様の問題を抱えている場合は、これを試すことをお勧めします。また、有用なドキュメントの Google JDBC エラー処理 (リンクを送信しますが、新しいユーザーは許可されていません)。

于 2009-06-01T15:05:51.037 に答える
0

getNextException() で返されたすべての例外を繰り返す必要があります

于 2009-06-01T05:27:58.960 に答える