Поймать асин * исключение c XML - PullRequest
0 голосов
/ 22 февраля 2020

Я впервые использую asyn c await, и я использую его для загрузки больших XML файлов. Однако я не могу отловить ошибки XML. Может ли кто-нибудь указать мне правильное направление?

try
        {
            XElement element = await Task.Run(() => XElement.Load(filePath));

        }
        catch (System.Xml.XmlException ex)
        {
            MessageBox.Show(ex.Message);
        }

1 Ответ

0 голосов
/ 22 февраля 2020

Мне удалось поймать исключение с помощью следующего кода. Также найдено в Try / Catch Wrap Around Task.Run не обрабатывает исключение .

try
        {
            Exception exceptionOut = null;

            await Task.Run(() =>
            {
                try
                {
                    XElement.Load(filePath);
                }
                catch (Exception exceptionIn)
                {
                    exceptionOut = exceptionIn;

                }
            });

            if (exceptionOut != null)
            {
                throw exceptionOut;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);

        }
...