Как вы ловите необработанное исключение, вызванное внешней DLL, которая молча закрывает ваше приложение? - PullRequest
1 голос
/ 21 марта 2019

Я занимаюсь разработкой программного обеспечения для оптического распознавания символов с использованием WPF.У меня есть стороннее оборудование, которое делает это.У меня также есть драйвер устройства, предоставленный производителем.Я ссылался на dll драйвера устройства в моем проекте, и я вызываю один из его методов для преобразования изображения в текст.Например, я могу поставить свой паспорт на устройство и получить массив информации из паспорта.Функция работает как положено, но иногда приложение закрывается без каких-либо исключений.Это связано с тем, что dll драйвера устройства видно из журналов событий окна.В dll есть необработанное исключение, которое внезапно закрывает приложение.

Я хочу, чтобы мое приложение WPF запускалось независимо от того, каким бы исключением не было сгенерировано файлом dll.

Я обнаружил глобальную ошибку в файле app.cs

private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
    var dialogContent = "Exception Message:" + "\n" + e.Exception.Message +
                        "\n" + "Stack Trace:" + "\n" + e.Exception.StackTrace;
    MessageBox.Show(dialogContent);

    e.Handled = true;
}

Я также добавил, пытался добавить эти атрибуты в моем методе.

[SecurityCritical]
[HandleProcessCorruptedStateExceptions]
public void ConvertImagetoText()
{
    try
    {
         //do something from the dll file.
    }
    catch
    {
         throw;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...