为什么C#Monitor类的实现对于lock语句只有try-finally而不是catch?
var obj = new object();
try
{
Monitor.Enter(obj);
}
finally
{
Monitor.Exit(obj);
}
答案 0 :(得分:1)
你应该发布一些代码来解释你的意思......
通常,您拥有finally
但没有catch
的原因是因为无论退出如何发生,您都希望在范围(try
)退出时运行一些代码。
换句话说,编写代码的人并不关心抛出什么异常(如果有的话),因为他们当时没有处理它(它只会冒泡到下一级代码),但无论如何无论是否有异常,都会在finally
中运行。