Ответ 1
Исключение, созданное внутри метода async
, по своему усмотрению хранится внутри возвращенной задачи. Чтобы избавиться от исключения, вы можете:
-
await
задача:await t.Helper();
-
Wait
задача:t.Helper().Wait();
- Проверить задачу
Exception
свойство после. Задача завершена:var task = t.Helper(); Log(task.Exception);
- Добавьте продолжение к этой задаче, которая обрабатывает исключение:
t.Helper().ContinueWith(t => Log(t.Exception), TaskContinuationOptions.OnlyOnFaulted);
Ваш лучший вариант - первый. Просто await
выполните задачу и обработайте исключение (если нет конкретной причины, вы не можете этого сделать). Подробнее в Обработка исключений задач в .NET 4.5