たとえば、C# コードに次のブロックがあるとします。
public class SynchedClass
{
public void addData(object v)
{
lock(lockObject)
{
//Shall I worry about catching an exception here?
//Do the work
//arr.Add(v);
}
}
private List<object> arr = new List<object>();
private object lockObject = new object();
}
lock
ブロック内で例外をキャッチしようとしますか? (私の主な懸念は、ロックの「ロック解除」を妨げる例外がロック内で発生する可能性があることです。)