Назад к задачам
Junior — Senior
11

Исключения в асинхронных вызовах: где они отлавливаются?

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Определите, в какие блоки catch будет перехвачено выброшенное исключение и какие строки появятся в выводе консоли.

using static System.Console;

async Task RunAsync() => throw new NotImplementedException();

Task myTask = Task.CompletedTask;

try
{
    myTask = RunAsync();
}
catch (Exception caught)
{
    Console.WriteLine($"M0: {caught.GetType().Name}"):
}

try
{
    await myTask;
}
catch (Exception caught)
{
    Console.WriteLine($"M1: {caught.GetType().Name}"):
}

try
{
    myTask.Wait();
}
catch (Exception caught)
{
    Console.WriteLine($"M2: {caught.GetType().Name}"):
}