Considere el siguiente código donde LockDevice() podría fallar y emitir una excepción por sí mismo. ¿Qué sucede en C# si se produce una excepción desde dentro de un bloque finally?Excepción desde dentro de un bloque finally
UnlockDevice(); try { DoSomethingWithDevice(); } finally { LockDevice(); // can fail with an exception }
Otra buena pregunta es "¿qué ocurre si se lanza una excepción de aborto hilo después UnLockDevice desbloquea el dispositivo, pero antes de entrar en la región try-protegida?" La respuesta: el dispositivo permanece desbloqueado. Parece un código bastante inseguro. –