Рассмотрите следующий код, где LockDevice () мог возможно привести к сбою и выдать исключение на собственном ist. Что происходит в C#, если исключение повышено из наконец блок?
UnlockDevice(); try { DoSomethingWithDevice(); } finally { LockDevice(); // can fail with an exception }
Точно то же самое, что произошло бы, если бы оно не было в блоке finally - исключение могло распространяться из этой точки. Если вам нужно, вы можете попробовать / поймать из finally:
try
{
DoSomethingWithDevice();
}
finally
{
try
{
LockDevice();
}
catch (...)
{
...
}
}
Метод называется 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()
}
}