Doesn't manually catching exceptions, because of the complexity associated with it (as to tracking what to undo and how), exceptionally inconvenient? And if it is, what really is a way to over come this, if we do want to use locks as the implementation? Or is there none, and we just have to deal with it?
@stride16 Except for inconvenience, manually catching exceptions may also have some side-effects as the slide says. For example if a thread crashes then other thread cannot get the lock, which lead to deadlock. So in this case I think it is better to have system handle all these exceptions.