为什么C#Monitor类的实现对于lock语句只有try-finally而不是catch?

时间:2015-06-30 04:36:18

标签: c# locking monitor

为什么C#Monitor类的实现对于lock语句只有try-finally而不是catch?

var obj = new object();
try
{
  Monitor.Enter(obj);
}
finally 
{
  Monitor.Exit(obj);
}

1 个答案:

答案 0 :(得分:1)

你应该发布一些代码来解释你的意思......

通常,您拥有finally但没有catch的原因是因为无论退出如何发生,您都希望在范围(try)退出时运行一些代码。

换句话说,编写代码的人并不关心抛出什么异常(如果有的话),因为他们当时没有处理它(它只会冒泡到下一级代码),但无论如何无论是否有异常,都会在finally中运行。