【发布时间】:2015-01-29 23:00:08
【问题描述】:
我的程序在 try/catch 块中生成 System.ComponentModel.Win32Exception,但未捕获该异常。代码很简单:
try
{
lAFE.MinimumSize = sz1; // lAFE=Label, sz1 = Size
}
catch (Exception ex)
{
MessageBox.Show("afe: " + ex.Message);
}
程序运行这个代码块数百次都没有问题,然后突然产生这个异常并且没有被捕获。
什么会导致这样的异常未被捕获。
此应用程序使用大量内存,当内存使用量达到约 305KB 时总是发生异常。
任何建议将不胜感激。
【问题讨论】:
-
有什么异常?
-
删除
Exception ex部分。仅对原生异常执行catch { your stuff }。 -
出于好奇-您是否尝试捕获特定异常,在本例中为 Win32Exception ?如果可能的话,尽量远离一个空的 catch 块,因为这是不好的做法让战争开始。由于性能和糟糕的编码设计以及无法捕获特定异常并对其采取行动而导致不好。
-
性能不会因为他有一个空的catch块而改变。在实际抛出异常之前,性能甚至不会受到影响。