代码不会超过VS2012的异常

时间:2013-06-04 10:07:12

标签: c# debugging exception visual-studio-2012

我有一个try catch语句,当代码抛出异常时,它不会超过这一点。

我按F5 / F10,代码保持运行相同的代码行。

这与VS2012中的设置有关吗?

致电代码:

       if (!string.IsNullOrEmpty(connections.xmlconSIPPPremium))
                    {
                        try
                        {
                            DataTable dt = GetUtilityFiles(connections.xmlconSIPPPremium);
                            foreach (DataRow dr in dt.Rows)
                            {
                                File.WriteAllBytes(_rootDirectory + @"\" + dr["UtilityName"], (byte[])dr["UtilityBytes"]);
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }

                    }
                    else if (!string.IsNullOrEmpty(connections.xmlconSSASPremium))
                    {
                        try
                        {
                            DataTable dt = GetUtilityFiles(connections.xmlconSSASPremium);
                            foreach (DataRow dr in dt.Rows)
                            {
                                File.WriteAllBytes(_rootDirectory + @"\" + dr["UtilityName"], (byte[])dr["UtilityBytes"]);
                            }
                        }
                        catch(Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }

                    }
                }

问题:

    private DataTable GetUtilityFiles(string strCon)
    {
        DataTable dt = new DataTable();

        using (SqlConnection con = new SqlConnection(strCon))
        {
            try
            {
                using (SqlCommand cmd = new SqlCommand("[dmm].[vertUtility_Select]", con))
                {
                    SqlDataAdapter sda = new SqlDataAdapter(cmd); 
                    sda.Fill(dt);         
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return dt;
        }
    }

谢谢!

2 个答案:

答案 0 :(得分:1)

是否只是想要关闭“例外助手”?

工具 - >选项 - >调试 - >启用例外助手[未选中]

然后异常不会停止执行。

希望这有帮助!

答案 1 :(得分:1)

调试时,VS2012中确实有一个设置如何处理异常。检查调试 - >例外...

当您将异常选中为“Thrown”时,调试器将在该异常处停止。阅读更多关于“第一次机会例外”的信息:What is a "first chance exception"?

详细了解VS2012中的异常处理:http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k(vs.debug.exceptions);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.0);k(DevLang-csharp)&rd=true

此外,在调试时,如果出现“异常辅助”对话框,则可以取消选中该特定异常发生时中断的选项。

enter image description here