Visual Studio:如何中断处理的异常?
时间:2020-03-06 14:33:31 来源:igfitidea点击:
我希望Visual Studio在发生处理的异常时中断(即,我不只是想看到"第一次机会"消息,我想调试实际的异常)。
例如我希望调试器在异常处中断:
try
{
System.IO.File.Delete(someFilename);
}
catch (Exception)
{
//we really don't care at runtime if the file couldn't be deleted
}
我遇到了有关Visual Studio.NET的这些说明:
1) In VS.NET go to the Debug Menu >>
"Exceptions..." >> "Common Language
Runtime Exceptions" >> "System" and
select "System.NullReferenceException"
2) In the bottom of that dialog there
is a "When the exception is thrown:"
group box, select "Break into the
debugger"
3) Run your scenario. When the
exception is thrown, the debugger will
stop and notify you with a dialog that
says something like:
"An exception of type "System.NullReferenceException" has
been thrown.
[Break] [Continue]"
Hit [Break]. This will put you on the
line of code that's causing the
problem.
但是它们不适用于Visual Studio 2005("调试"菜单上没有"例外"选项)。
有谁知道在Visual Studio中的"当引发异常时"组框以及"闯入调试器"选项中可以找到此选项对话框的地方吗?
更新:问题是我的"调试"菜单没有"例外"项。我自定义菜单以手动添加它。
解决方案
VS2005中有一个"例外"窗口...调试时尝试按Ctrl + Alt + E并单击" Thrown"复选框以获取要停止的例外。
打开解决方案后,转到"调试例外"(Ctrl + D + E)菜单选项。从那里,我们可以选择中断引发或者用户未处理的异常。
编辑:我的实例是用C"配置文件"设置的,也许其他配置文件不存在?
在msdn上查看此内容,它说明了如何进行设置。
本质上,这是步骤(调试过程中):
- 在"调试"菜单上,单击"例外"。
- 在"例外"对话框中,为整个类别的例外选择"引发",例如,"公共语言运行时例外"。 -或者-展开该节点,以查找异常类别,例如"公共语言运行时异常",然后为该类别中的特定异常选择"抛出"。
我使用的技术类似于以下内容。根据要调试的内容,定义一个全局变量,该变量可用于一个或者多个try catch块,并使用以下结构:
if(!GlobalTestingBool)
{
try
{
SomeErrorProneMethod();
}
catch (...)
{
// ... Error handling ...
}
}
else
{
SomeErrorProneMethod();
}
我发现这为我提供了更多的测试灵活性,因为仍然有一些我不希望IDE中断的异常。

