【发布时间】:2013-11-14 05:42:23
【问题描述】:
我对 C# 很陌生。
当我尝试捕捉这样的东西时:
try
{
connection.Open();
command.ExecuteNonQuery();
}
catch(SqlException ex)
{
MessageBox.Show("there was an issue!");
}
我如何知道问题是否发生在Open 或ExecuteNonQuery?
如果我在Try 中调用了一堆其他non-SQL 的东西怎么办?
我怎么知道哪个失败了?SqlException 比普通的 Exception 是什么意思?
如果Try 块中有这样的代码,SqlException 将如何处理与 SQL 无关的错误?
【问题讨论】:
-
您可以从堆栈跟踪中获取行号(但并非在所有情况下),并从异常中获取堆栈跟踪。但这是一种非常脆弱的方法,请勿将其用于应用程序逻辑。
-
try catch 是面向异常设计的,因此您可以追溯异常,但不能追溯语句。
标签: c# sqlexception