【发布时间】:2016-02-03 19:03:50
【问题描述】:
我得到了这个代码:
try
{
using (SqlConnection sourceCnx = new SqlConnection(SOURCE_CONN_STRING))
{
sourceCnx.Open();
SqlCommand sysCmd = sourceCnx.CreateCommand();
sysCmd.CommandText = "My query";
sysCmd.ExecuteNonQuery();
}
}
catch (Exception)
{
//Throwing a message box informing that there is an error
}
我想在用户不再连接到互联网时显示一条消息。 但是,当我在没有 Internet 连接的情况下调试程序时,程序会因 SqlException 而崩溃。 (“catch”块没有捕获异常)
我尝试在catch (Exception) 之前添加catch (SqlException) { // code },但它不起作用。
我仍然有一个异常,而不是 catch 块显示的消息。
我不知道该怎么做,因为如果我创建一个方法来测试互联网连接(try ping google.com)然后返回 true,如果没问题,它会是一样的:我有一个异常,因为没有互联网连接。
有什么想法吗?
【问题讨论】:
-
您确定异常是从该
try块中引发的吗?catch块将捕获异常。 (旁注:您的异常处理忽略了有关异常的有用信息。至少您应该检查异常的类型、错误消息和堆栈跟踪。丢弃有关错误的信息将使修复错误变得非常困难。 ) -
是的,Visual Studio 告诉我
sourceCnx.Open();行是异常的原因。我也试过写catch (Exception ex) { var excep = ex.GetType().FullName; }但是没有到达catch块。 -
在调试模式下你是否只是打破所有异常?
-
我不明白你的问题,对不起..我的英语不太流利,请见谅。
-
删除该复选框,异常将首先到达您的 catch 块。当未处理时,(没有 catch 块,它会导致你的应用程序崩溃)然后只到调试器。
标签: c# sql winforms exception try-catch