2009-06-01 36 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