Исключение из наконец блока

Рассмотрите следующий код, где LockDevice () мог возможно привести к сбою и выдать исключение на собственном ist. Что происходит в C#, если исключение повышено из наконец блок?

UnlockDevice();

try
{
  DoSomethingWithDevice();
}
finally
{
  LockDevice(); // can fail with an exception
}
5
задан schrödingers cat 25 March 2010 в 09:01
поделиться

2 ответа

Точно то же самое, что произошло бы, если бы оно не было в блоке finally - исключение могло распространяться из этой точки. Если вам нужно, вы можете попробовать / поймать из finally:

try
{
    DoSomethingWithDevice();
}
finally
{
    try
    {
        LockDevice();
    }
    catch (...)
    {
        ...
    }
}
10
ответ дан 14 December 2019 в 04:34
поделиться

Метод называется Try / Catch

Где ваш улов?

UnlockDevice();

try
{
  DoSomethingWithDevice();
}
catch(Exception ex)
{
  // Do something with the error on DoSomethingWithDevice()
}
finally
{
   try
   {
      LockDevice(); // can fail with an exception
   }
   catch (Exception ex)
   {
       // Do something with the error on LockDevice()
   }
}
-2
ответ дан 14 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: