Подтвердить что ты не робот

Не удается найти собственное исключение в управляемом коде

У меня смешанное приложение консоли .NET и native. Процесс приложения завершается из-за фатальной ошибки библиотеки Visual C RunTime. Несмотря на то, что я использую следующее, управляемый код не захватывает собственное исключение:

  • Блок try/catch
  • AppDomain.UnHandledExption += ...
  • Пометка RuntimeCompatibilityAttribute(WrapNonExceptionThrows = true) в файле AssmblyInfo.

Что еще я могу сделать?

4b9b3361

Ответ 1

Исходные исключения изменились в .NET 4, так что они не могут быть привязаны к стандартным блокам catch. Вы специально должны отметить функцию, в которой исключение выбрано как [HandleProcessCorruptedStateExceptions], чтобы уловить его.

Подробнее здесь http://msdn.microsoft.com/en-us/magazine/dd419661.aspx

Следите за примечаниями в этой статье, например, если вы хотите их нормально поймать, а не следовать их советам по выполнению блока finally и выйти, добавьте legacyCorruptedState­­ExceptionsPolicy=true в свой файл конфигурации.

Ответ 2

Catch without() будет захватывать исключения, не совместимые с CLS, включая собственные исключения.

try
{

}
catch
{

}