【发布时间】:2014-01-02 10:01:54
【问题描述】:
我正在执行一个存储过程,它里面有一些代码,我把它放在一个 try catch 块中,比如
BEGIN Transaction Tran1
BEGIN Try
//Stored procedure code
COMMIT TRANSACTION Tran1
END Try
BEGIN Catch
ROLLBACK TRANSACTION Tran1
raiserror('Cannot commit transaction', 16, 1, @@error);
return;
END Catch
当发生任何错误时,它会转到Catch 块并引发错误,这是用户定义的错误,但它不会引发实际发生的错误类型。那么,当我们从前端执行它时,我怎么能得到真正发生的错误类型,就像我们在 C# 中所做的那样
Try
{
//Some code
}
Catch(Exception ex)
{
MessageBox.Show(ex.message);
}
请为我提供解决方案
【问题讨论】:
-
如果可能的话,去掉sp中的try catch,加入c#代码。编辑:还要在 c# 中添加您的事务处理。
-
在我的情况下这是可能的,但仍然有任何方法可以跟踪错误
-
不幸的是我无能为力:(
标签: c# sql-server exception transactions try-catch