lock.lock(); try{ //do critical section code, which may throw exception } finally { lock.unlock(); }