在JAVA中找不到SQL存储过程异常

时间:2016-01-19 07:31:52

标签: sql-server hibernate spring-mvc jpa exception-handling

从sql存储过程catch块抛出异常不会引发SP1的java层异常,而SP2异常则会引发异常。

当我执行时,两个SP都在SQL Server中提供异常但是从java代码中我没有异常的SP1。

我使用JPA StoredProcedureQuery调用两个SP并使用Hibernate&弹簧。

CREATE PROCEDURE SP1
AS
SET NOCOUNT ON

BEGIN TRY
DECLARE @ErrorMessage AS VARCHAR(MAX)
SELECT 1/0
END TRY

BEGIN CATCH
THROW 50001, @ErrorMessage, 1;
END CATCH


CREATE PROCEDURE SP2
AS
SET NOCOUNT ON

DECLARE @ErrorMessage AS VARCHAR(MAX)
SELECT 1/0
if @@error<>0
GOTO Erro

RETURN
Erro:
THROW 50001, @ErrorMessage, 1;

我已经测试过,如果我在TRY块中使用任何THROW,它会在Java端产生异常,而在CATCH块中则不会。

0 个答案:

没有答案