Я написал следующий тестовый код, хотя я был почти уверен, что произойдет:
static void Main(string[] args)
{
Console.WriteLine(Test().ToString());
Console.ReadKey(false);
}
static bool Test()
{
try
{
try
{
return true;
}
finally
{
throw new Exception();
}
}
catch (Exception)
{
return false;
}
}
Конечно, программа написала «False» на консоли.Мой вопрос: что происходит с истиной, которая первоначально возвращается?Есть ли способ получить это значение, в блоке catch, если это возможно, или в оригинальном блоке finally, если нет?
Просто для пояснения, это только для образовательных целей.Я бы никогда не сделал такую запутанную систему исключений в реальной программе.