Вот пример исключения, происходящего внутри блокировки, с блоком try-catch.
int zero = 0;
int j = 10;
lock (sharedResource.SyncRoot)
{
try
{
j = j / zero;
}
catch (DivideByZeroException e)
{
// exception caught but lock not released
}
}
Как безопасно освободить эту блокировку в catch?