Как продолжить выполнение цикла, если словил исключение?

Рейтинг: 1Ответов: 1Опубликовано: 07.06.2023

Имеется список футболистов и уровень их мастерства. В блоке try я создаю цикл и проверяю условие. Если уровень футболиста меньше 20, то срабатывает исключение в блоке catch. Но у меня бывает, что не у одного футболиста уровень мастерства меньше 20. Как мне сделать так, чтобы проверял всех игроков, у которых уровень мастерства меньше 20, а потом уже попасть в блок catch?

try
{
    for (int i = 0; i < FirstTeam.players.Count ; i++)
    {
        if (FirstTeam.players[i].SkillLevel < 20) 
        {
            throw new Exception(FirstTeam.players[i].Sername);
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

Ответы

▲ 2Принят

Самое простое что тут можно сделать — инвертировать вложенность:

for (int i = 0; i < FirstTeam.players.Count ; i++)
{
    try
    {
        if (FirstTeam.players[i].SkillLevel < 20) 
        {
            throw new Exception(FirstTeam.players[i].Sername);
        }
    }    
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}