Обработка исключений в асинхронных методах и задачах
Условие задачи
В каких блоках catch будет поймано исключение и что выведется в консоль?
csharpusing static System.Console;
async Task call() => throw new NotImplementedException();
Task task = Task.CompletedTask;
try
{
task = call();
}
catch (Exception caught)
{
Console.WriteLine($"M0: {caught.GetType().Name}"):
}
try
{
await task
}
catch (Exception caught)
{
Console.WriteLine($"M1: {caught.GetType().Name}"):
}
try
{
task.Wait();
}
catch (Exception caught)
{
Console.WriteLine($"M2: {caught.GetType().Name}"):
}