为什么try-catch块无法处理异常?

时间:2011-09-09 13:00:14

标签: c# exception-handling access-violation

FSDKCam.GetVideoFormatList 是来自外部.NET dll的方法。当您看到图像时,它会在try-catch块中抛出异常。

try
{
    FSDKCam.GetVideoFormatList(ref cameraList[0], out formatList, out count);
    if (count > 0) cmbCameraList.Items.Add(cam);
}
catch { }

截图:

enter image description here

1 个答案:

答案 0 :(得分:9)

在.NET 4中,AccessViolationException默认情况下无法捕获。

请参阅legacyCorruptedStateExceptionsPolicy配置元素。他们之所以这样做,是因为人们在整个代码中都有try {} catch (Exception) {},抓住AccessViolationException(以及其他一些人)并继续这样做通常不是一个好主意。

此外,请参阅http://msdn.microsoft.com/en-us/magazine/dd419661.aspx