Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Перехват AccessViolationException


Автор: infarch 28.7.2015, 16:27
Здравствуйте.

Мое консольное приложение иногда умирает когда происходит ексепшен:
Код

System.AccessViolationException: Attempted to read or write
 protected memory. This is often an indication that other memory is corrupt


В приложении есть подписка на событие AppDomain.CurrentDomain.UnhandledException которая и должна ловить непредсказуемые ошибки:
Код

        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            Console.WriteLine("Handled");
            Environment.Exit(1);
        }


Однако хендлер не вызывается в случае AccessViolationException. Может быть, есть другие пути перехвата подобных ошибок?

ps. Судя по всему, ошибка прилетает из подключенной unmanaged библиотеки.

Автор: mrbrooks 31.7.2015, 15:41
Попробуй использовать атрибут HandleProcessCorruptedStateExceptionsAttribute, с методом, генерирующим это исключение. Скорее всего это использование или неуправляемого кода, или небезопасного управляемого кода.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)