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

Метод FromException

Task.FromException помечает задачу как сбойную. await пробрасывает исходное исключение, а Result и Wait - AggregateException. Успех - FromResult.

Синтаксис

Task task = Task.FromException(ex); Task<T> task = Task.FromException<T>(ex);

Пример

Давайте проверим IsFaulted:

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.IsFaulted; Console.WriteLine(res); } }

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

True

Пример

Давайте поймаем исключение через await:

using System; using System.Threading.Tasks; class Program { static async Task Main() { try { await Task.FromException( new InvalidOperationException("abcde")); } catch (InvalidOperationException ex) { Console.WriteLine(ex.Message); } } }

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

"abcde"

Пример

Давайте обратиться к Result у Task<int>:

using System; using System.Threading.Tasks; class Program { static async Task Main() { var task = Task.FromException<int>( new InvalidOperationException("abcde")); await Task.Yield(); try { int x = task.Result; } catch (AggregateException) { Console.WriteLine("fail"); } } }

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

"fail"

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить