Исключение в async-методе в C#
Исключение из async-метода попадает в возвращённую Task и всплывает на await.
Конструкция try / catch вокруг await ловит такую ошибку так же, как обычное исключение. Наружу выходит исходный тип, а не общая обёртка из нескольких ошибок.
Поймаем ошибку из async-метода:
static async Task FailAsync()
{
throw new InvalidOperationException("bad");
}
try
{
await FailAsync();
}
catch (InvalidOperationException)
{
Console.WriteLine("caught"); // выведет "caught"
}
Вызовите метод, который завершается ошибкой с текстом "fail", поймайте её и выведите 1.