0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 10
1

Как обрабатывать исключения из неуправляемого кода?

25.12.2014, 08:35. Показов 2368. Ответов 2
Метки нет (Все метки)

Здравствуйте.
В приложении используется сторонняя библиотека на c++, в которой периодически возникают ошибки. Ведут они себя не как исключения и как их отловить я не знаю. В подробностях ошибки - Имя события APPCRASH и фигурирует имя этой библиотеки.

Как обрабатывать исключения из неуправляемого кода?


Как можно отключить вывод таких ошибок, а лучше вывод не только таких ошибок, но и исключений, чтобы программа работала тихо, а в случае чего просто вылетала, не сообщая ничего пользователю?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2014, 08:35
Ответы с готовыми решениями:

Как обрабатывать исключения
Как сделать обработку исключения i -только натуральные (целые) числа?

Как обрабатывать исключения?
Откомпилировал норм, но вот когда ввожу данные говорит "Прекращена работа программы" И не понятно...

Как правильно обрабатывать исключения в приложении на базе графического движка?
Я с исключениями работал только в консольных приложениях - там удобно реализовывался метод бросания...

Как правильно обрабатывать исключения неверного ввода в TextBox для расчетов
Есть ТекстБокс в винформс, которое должно принимать значения типа Double. делаю так: double...

2
90 / 91 / 51
Регистрация: 19.06.2013
Сообщений: 323
25.12.2014, 09:15 2
VladimirMerk, я могу ошибаться, но мне кажется, что это "Необрабатываемые исключения". Их нельзя отловить

Добавлено через 1 минуту
Устаранить его можно устранив ошибку в приложении
0
Администратор
Эксперт .NET
9320 / 4609 / 755
Регистрация: 17.04.2012
Сообщений: 9,454
Записей в блоге: 14
25.12.2014, 13:09 3
Лучший ответ Сообщение было отмечено VladimirMerk как решение

Решение

Необработанные исключения можно изловить с использованием события AppDomain.UnhandledException
Сомневаюсь насчёт работоспособности этого метода для ошибок из неуправляемого кода, но попробовать стоит.

Для неуправляемого кода есть два варианта:
  1. Ловить ExternalException, см. также http://stackoverflow.com/a/4224513
  2. Ловить Win32Exception, см. http://stackoverflow.com/a/150596
    C#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    const int ERROR_FILE_NOT_FOUND = 2;
    const int ERROR_ACCESS_DENIED = 5;
    const int ERROR_NO_APP_ASSOCIATED = 1155; 
     
    void OpenFile(string filePath)
    {
        Process process = new Process();
     
        try
        {
            // Calls native application registered for the file type
            // This may throw native exception
            process.StartInfo.FileName = filePath;
            process.StartInfo.Verb = "Open";
            process.StartInfo.CreateNoWindow = true;
            process.Start();
        }
        catch (Win32Exception e)
        {
            if (e.NativeErrorCode == ERROR_FILE_NOT_FOUND || 
                e.NativeErrorCode == ERROR_ACCESS_DENIED ||
                e.NativeErrorCode == ERROR_NO_APP_ASSOCIATED)
            {
                MessageBox.Show(this, e.Message, "Error", 
                        MessageBoxButtons.OK, 
                        MessageBoxIcon.Exclamation);
            }
        }
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2014, 13:09
Помогаю со студенческими работами здесь

Как обрабатывать системные исключения в С++ Builder так, чтобы в ответ на стандартные ошибки
появлялось не стандартное окно, а моё окно, которое я создал в приложении сам?

Запуск неуправляемого кода внутри кода c#
часто требуется при выполнении программы запускать исполняемые файлы (exe) с ключами. Для этого...

Почему нельзя обрабатывать исключения в потоках
Сижу читаю msdn: http://msdn.microsoft.com/ru-ru/library/6kac2kdh.aspx Пять раз перечитал эти...

опасности неуправляемого кода
какие опасности несет в себе неуправляемый код. На ум приходит только назначение переменным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru