2009-06-01 9 views
4

我正在通過JDBC從jsp與jsp進行交互(這不是一個真正的項目),而且我在使用的數據庫中創建了一個觸發器。如果執行此觸發器時未滿足某個條件,則通過raiserror()引發錯誤。我想這個錯誤顯示在通過JDBC調用SQL Server查詢的實際頁面上,但是當我打印出SQLException.getMessage()的結果時,我只是得到以下默認消息:如何使用SQL Server顯示從raiserror()生成的錯誤消息

事務在觸發器中結束。該批次已被中止。

有誰知道如何提取我實際傳遞給我的觸發器代碼中的raiserror的文本?我已經嘗試:

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

回答

8

我想通了。這個問題與我在調用raiserror()時選擇的嚴重程度有關。我在這個參數中傳入了10,因爲我已經看到一個將10放在那裏的示例,但爲了將錯誤文本傳遞給SQLException,嚴重性必須爲11或更高。改變嚴重程度後,一切正常。如果其他人有類似的問題,我會建議嘗試這一點。另外谷歌JDBC錯誤處理有用的文檔(我會提交一個鏈接,但新用戶不允許)。

0

您需要遍歷所有使用getNextException返回的異常()

+0

感謝您的回覆。我嘗試過,但不幸的是,似乎沒有其他異常,因爲當我調用getNextException()時,它將返回null。 – BordrGuy108 2009-06-01 05:36:16