Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1176 of 1492 menu
◀ ▶

Свойство Exception

Task.Exception после сбоя хранит AggregateException. Сообщение исходной ошибки - в InnerExceptions[0]. При успехе свойство null. Флаг сбоя - IsFaulted.

Синтаксис

AggregateException? error = task.Exception;

Пример

Давайте прочитаем сообщение сбоя:

using System; using System.Threading.Tasks; class Program { static async Task Main() { var task = Task.FromException( new InvalidOperationException("abcde")); await Task.Yield(); string res = task.Exception!.InnerExceptions[0].Message; Console.WriteLine(res); } }

Результат выполнения кода:

"abcde"

Пример

Давайте проверить null у успешной задачи:

using System; using System.Threading.Tasks; class Program { static async Task Main() { var task = Task.FromResult(12345); await task; bool res = task.Exception == null; Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте убедиться, что тип обёртки - AggregateException:

using System; using System.Threading.Tasks; class Program { static async Task Main() { var task = Task.FromException( new InvalidOperationException("abcde")); await Task.Yield(); bool res = task.Exception is AggregateException; Console.WriteLine(res); } }

Результат выполнения кода:

True

Смотрите также

  • метод FromException,
    задача со сбоем
  • свойство Result,
    тоже бросает AggregateException
  • метод Wait,
    синхронное ожидание с обёрткой
  • Task,
    класс, где объявлено свойство
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить