Ear*_*rlz 18 .net debugging exception visual-studio visual-studio-2012
我在一个非常大的遗留代码库上工作.因为它并不总是保持最佳状态,所以有时会从控制流中使用异常,或者出于其他原因.并且有时候它几乎是不可避免的例如,除了将文件作为图像传入并查看它是否不会引发异常之外,您如何检查文件是否是有效的.ico图像?
我尽可能地重构这种东西,但很多时候,为了获得微小的收益而重构太昂贵了.调试时,这些虚假的异常变得非常烦人.我们捕获所有异常以避免程序崩溃,并捕获大多数异常并显示更加用户友好的东西.因此,在调试时,如果某段代码抛出一个ApplicationException,那么在我们最终得到实际的bug之前,可能会抛出50个异常类型.大多数情况下,这些虚假的例外都集中在一部分代码上(很多时候是一行).有没有什么方法可以让Visual Studio忽略从该行抛出的异常,但仍然停止在实际问题的异常上?或者我还能做些什么来帮助防止这种调试失败?
为了说明我的问题,想象一下这样的事情:
for(int i=0; i<foo; i++)
{
try
{
FooBar(i); //this function throws NullReferenceException sometimes
}catch {} //ignore it because we don't care if it failed
}
....
var tmp=Bar as FooType; //this cast fails so tmp is null
tmp.Meh(); //throws exception here. This is a bug, we should've checked for null
Run Code Online (Sandbox Code Playgroud)
如果你想弄清楚NullReference的位置,你基本上按住F5,直到你通过FooBar调用.这充其量是烦人的,并且非常容易出错
您可以调整发生中断的异常类型。请参阅菜单中的“调试”->“异常” http://msdn.microsoft.com/en-us/library/d14azbfh(v=vs.80).aspx
| 归档时间: |
|
| 查看次数: |
2364 次 |
| 最近记录: |