Почему блок try-catch не может обработать исключение? - PullRequest
2 голосов
/ 09 сентября 2011

FSDKCam.GetVideoFormatList - это метод из внешней библиотеки .NET. Как вы видите изображение, оно вызывает исключение в блоке 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 Ответ

9 голосов
/ 09 сентября 2011

В .NET 4, AccessViolationException по умолчанию не перехватывается.

См. Элемент конфигурации legacyCorruptedStateExceptionsPolicy . Они сделали это, потому что у людей есть try {} catch (Exception) {} во всем их коде, и обычно не очень хорошая идея поймать AccessViolationException (наряду с несколькими другими) и продолжить.

Дополнительно см. http://msdn.microsoft.com/en-us/magazine/dd419661.aspx

...