抛出异常时,调试器不会破坏代码

时间:2014-02-18 13:02:13

标签: c# winforms

在调试我的Winform程序时,我最近发现,程序会弹出一个显示错误信息的对话框,而不是打破执行错误的源代码行,如下所示:

enter image description here

这对我不好,因为我不知道导致此失败的代码在哪里,你知道为什么我的Visual Studio调试器的行为如此,我该如何改变它?

3 个答案:

答案 0 :(得分:1)

如果您在Non-Debug模式下运行应用程序,它将不会破坏您的代码,它只会在MessageBox

中显示错误消息

如果你想抛出异常并指向你的代码,那么你需要在Debug模式下运行程序。

编辑:如果您已处于调试模式,请尝试以下操作:

步骤1:转到VS IDE中的Debug菜单 第2步:选择Exceptions
第3步:现在您需要检查Common Language Runtime Exceptions对话框中的Exceptions选项。

enter image description here

答案 1 :(得分:0)

我猜你会在你的程序中捕获异常并在这种情况下显示一个消息框。可能还有毯子catch (Exception e)。您可以使调试器进入任何抛出的异常,即使在Debug>下捕获也是如此。异常。

答案 2 :(得分:0)

您可以显示StackTrace而不是Message,其中包含导致异常的调用的深入分析。

你可以这样显示你的信息:

try
{
    // some code that throws an exception
}
catch()
{
    StringBuilder sb = new StringBuilder();
    sb.AppendFormat("Message: {0}", e.Message);
    sb.AppendLine();
    sb.AppendLine();
    sb.AppendFormat("StackTrace: {0}", e.StackTrace);
    MessageBox.Show(sb.ToString(), "Error");
}