Предотвращение отчетов SQL Server о перехваченных ошибках в Java (спящий режим), драйвер JDBC

#sql-server #hibernate #stored-procedures #jdbc #try-catch

#sql-сервер #спящий режим #хранимые процедуры #jdbc #попробуйте -поймайте

Вопрос:

Приложение Java Hibernate вызывает мою хранимую процедуру в SQL Server 2019 через JDBC

Хранимая процедура имеет блок begin / catch

Несмотря на то, что я улавливаю ошибку, об ошибке сообщается Java как об исключении, а затем приложение завершается с ошибкой

С точки зрения базы данных (и бизнеса) ошибка была обнаружена, и все в порядке

Мне нужно, чтобы приложение Java не вызывало исключение, поскольку ошибка была правильно обработана хранимой процедурой

Есть ли какая-либо конфигурация или что-то (в SP), что я могу добавить?

ПРИМЕЧАНИЕ: я на стороне БД, код Java не входит в мою область, его нельзя изменить

ДОБАВЛЕНО

Я имею в виду, какую бы ошибку, например:

 CREATE PROCEDURE SP_TEST
AS
BEGIN TRY
    SELECT 1/0 as x
    PRINT 'no problem'
END TRY
BEGIN CATCH
    SELECT 1 as x
    PRINT 'don´t pay attention'
END CATCH
PRINT 'good bye'

return 0 -- always 0 = OK
 

Несмотря на то, что ошибка каким-то образом управлялась хранимой процедурой
, клиентское приложение получает ее

Я действительно не знаю, нормально ли это для драйвера или движка

Комментарии:

1. Добавьте пример кода для хранимой процедуры и ошибки, которые вы хотите подавить.

2. Вы используете блок T-SQL CATCH ? Исключение JdbcException не должно возникать на клиенте, если ошибка не была повторно вызвана в блоке catch.

3. Дэн, на следующей неделе я смогу опубликовать подробную информацию о клиентском приложении, то есть фрагмент кода Java, который улавливает исключение, и, возможно, некоторые комментарии разработчика Java

4. О каком конкретном типе исключения сообщается в вашем Java-приложении? Основываясь на вашем опубликованном примере кода, я ожидаю, что это исключение, созданное приложением, а не исключение SQL, потому что оно select 1/0 все равно вернет результирующий набор в приложение — у него будет только 1 неназванный столбец и 0 строк.

5. дублирование в MS Q amp; A