gpt4 book ai didi

c# - 如何知道在C#代码中具有TRY CATCH处理的存储过程中是否存在错误

转载 作者:行者123 更新时间:2023-12-03 08:48:47 25 4
gpt4 key购买 nike

让我解释一下场景:我有这段代码和存储过程。

情况1:

C#代码:

try 
{
call uspMyProcedure using ado.net
}
catch
{
Log exception
}

存储过程
uspMyProcedure (*without try catch*)

在这种情况下1,我可以知道存储过程中是否有错误,因为C#代码中捕获了异常。

情况2:

C#代码:
try 
{
call uspMyProcedure using ado.net
}
catch
{
Log exception
}

存储过程
uspMyProcedure (*with try catch*)

这种情况2,我怎么知道存储过程中是否有错误,因为C#代码没有捕获异常。

谢谢。

麦克风

最佳答案

在SQL Server中,您可以在catch语句中重新抛出错误。例如:-

SQL Server 2012或以上

BEGIN TRY  
.....
END TRY
BEGIN CATCH
PRINT 'In catch block.';
THROW;
END CATCH;

早于SQL Server 2012
BEGIN TRY
....
END TRY
BEGIN CATCH
DECLARE @ErrorMessage nvarchar(max), @ErrorSeverity int, @ErrorState int
SELECT @ErrorMessage = N'Error Number: ' + CONVERT(nvarchar(5), ERROR_NUMBER()) + N'. ' + ERROR_MESSAGE() + ' Line ' + CONVERT(nvarchar(5), ERROR_LINE()), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE()
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)
END CATCH

在SQL Server中尝试-捕获错误处理的原因主要是正确回滚事务。之后,您应该抛出错误,以便客户端应用程序可以了解该错误。

关于c# - 如何知道在C#代码中具有TRY CATCH处理的存储过程中是否存在错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47047773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com