c# try catch Вложенные

133
07 апреля 2021, 16:00

Как происходит обработка блока finally, если идет конструкция

try {
   try { }
   catch {}
   finally {}
}
catch {}
finally {}

Сработает тот и тот блок или же?

Answer 1

Должны отработать оба finally, т.к. блок finally Отрабатывает всегда (см. документацию), если исключение поймано. Если не поймано, то здесь уже нет гарантий выполнения.

Answer 2
static void Main(string[] args)
{
    try{
        try{
            throw new Exception();
        }
        catch{
            Console.WriteLine("Inner catch");
        }
        finally{
            Console.WriteLine("Inner finally");
        }
    }
    catch{
        Console.WriteLine("Outer catch");
    }
    finally{
        Console.WriteLine("Outer finally");
    }
}

Результат:

Inner catch

Inner finally

Outer finally

READ ALSO
Как выполнить асинхронную операцию с возвращаемым результатом фоном (то есть проигнорировав результат) в C#

Как выполнить асинхронную операцию с возвращаемым результатом фоном (то есть проигнорировав результат) в C#

У меня есть асинхронная функция, она возвращает результатИногда он мне нужен, иногда нет

95
Не удается верно указать индексы дублирующихся символов в строке

Не удается верно указать индексы дублирующихся символов в строке

Необходимо вывести индексы начала и конца последовательности дублирующихся гласных символов

85
Корзина покупок в ASP.NET Core

Корзина покупок в ASP.NET Core

Изучаю ASPNet Core и никак не могу найти, как правильно реализовать корзину с помощью этой технологии

87
C# запись в ACC, минуя Wav

C# запись в ACC, минуя Wav

Нужно каким то образом записать звук с микрофона, и сохранить это в формате ACCЕсть NAudio, но там сначала пишется в Wav, и только потом можно конвертнуть

98