我是否需要在我的存储过程中使用try catch来了解我的程序错误发生的确切位置,或者如果我在ASP.NET表单中使用SqlConnection.BeginTransaction
或者简单的try catch可能会实现相同的效果... ???
我尝试使用sql server 2005在我的存储过程中实现try catch但它不知道TRY和CATCH关键字或ERROR_MESSAGE()函数...我还安装了sql server 2005服务管理器但是它仍然不起作用..
如果使用RAISERROR
方法抛出错误,异常将以我的ASP.NET形式显示?
答案 0 :(得分:1)
使用try-catch环绕代码中的数据库调用...尝试将其置于代码隐藏级别。如果您正在使用数据访问层,请使用单个throw语句放置try-catch。然后在它冒泡时在代码隐藏中处理它。
答案 1 :(得分:1)
在SQL Server中使用TRY ... CATCH查看本手册: http://msdn.microsoft.com/en-us/library/ms175976.aspx
BEGIN TRY
{ sql_statement | statement_block }
END TRY
BEGIN CATCH
[ { sql_statement | statement_block } ]
END CATCH
您可以使用catch(SqlException ex)捕获异常。您将在System.Data.SqlClient命名空间中找到它。您还可以检查严重性级别。