Как отобразить сообщение об ошибке, сгенерированное из raiserror() с SQL Server
Я взаимодействую с SQL Server 2005 из jsp через JDBC (это назначение не настоящий проект), и я создал триггер в базе данных, которую я использую. Если при выполнении этого триггера не выполняется определенное условие, я выдаю ошибку через raiserror(). Я хотел бы, чтобы эта ошибка отображалась на фактической странице, которая вызывает запрос SQL Server через JDBC, но в настоящее время я просто получаю следующее сообщение по умолчанию при выводе результата SQLException.getMessage():
Транзакция завершилась в триггере. Пакет был прерван.
Кто-нибудь знает, как извлечь текст, который я фактически передал raiserror в моем коде триггера? Я уже попробовал:
- SQLException.getState ()
- SQLException.getNextException ()
- SQLException.getCause ()
- SQLException.toString ()
2 ответа
Я понял. Проблема была связана с серьезностью, которую я выбрал при вызове raiserror(). Я передавал 10 для этого аргумента, как я видел пример, который помещает туда 10, но для того, чтобы текст ошибки передавался в SQLException, серьезность должна быть 11 или выше. После изменения серьезности все работает нормально. Если у кого-то еще есть подобная проблема, я рекомендовал бы попробовать это. Также Google JDBC обрабатывает ошибки для полезной документации (я бы отправил ссылку, но новые пользователи не допускаются).
Вам нужно перебрать все исключения, возвращаемые с помощью getNextException()