繁体   English   中英

引发异常时,调试器不会破坏代码

[英]Debugger does not break the code when exceptions are thrown

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

在此处输入图片说明

这对我不利,因为我不知道导致此失败的代码在哪里,您知道为什么我的Visual Studio调试器会表现为这种行为,以及如何更改此行为?

如果您在Non-Debug模式下运行应用程序,则不会破坏您的代码,它只会在MessageBox显示错误消息

如果要抛出异常并精确指向引发异常的代码,则需要在“ Debug模式下运行程序。

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

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

在此处输入图片说明

我想您会在程序中捕获异常,并在这种情况下显示一个消息框。 可能是一针见血catch (Exception e) 您可以使调试器闯入任何引发的异常,即使在Debug> Exceptions下也是如此。

您可以显示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");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM