Мы запускаем оператор SELECT с использованием подготовленного состояния.executeQuery в базе данных SQL Server. Запрос не выполняется с ожидаемой исключительной ситуацией. Проблема здесь в том, что исключение выдается не в executeQuery, а в тот момент, когда мы выполняем rs.next (), т.е. при чтении набора результатов. Есть ли причина для такого поведения? Что мы можем сделать, чтобы оно выдало исключение в executeQuery?
Баночка с драйвером - sqljdbc4 - 4.0.2206.100
Java версия - 1.8
Выполненный запрос: SELECT Col1 from Table1 where Col2 = ?
Ошибка трассировки:
com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 66) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet$FetchBuffer.nextRow(SQLServerResultSet.java:6357)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.fetchBufferNext(SQLServerResultSet.java:1798)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(SQLServerResultSet.java:1049)