为什么洛克语句的C#Monitor类实现只有try finally而没有catch?

为什么洛克语句的C#Monitor类实现只有try finally而没有catch?,c#,locking,monitor,C#,Locking,Monitor,为什么洛克语句的C#Monitor类实现只有try finally而没有catch var obj = new object(); try { Monitor.Enter(obj); } finally { Monitor.Exit(obj); } 你应该发布一些代码来解释你的意思 通常,您有一个finally但没有catch的原因是,无论退出方式如何,退出作用域(try)时,您都有一些要运行的代码 换句话说,编写代码的人不关心抛出什么异常(如果有),因为他们当时没有处理它(它只会冒

为什么洛克语句的C#Monitor类实现只有try finally而没有catch

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

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

通常,您有一个
finally
但没有
catch
的原因是,无论退出方式如何,退出作用域(try)时,您都有一些要运行的代码


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

因为对于
捕获
/exception没有任何有用的操作。因此,它允许异常正常传播。然而,总有一些清理工作要做——因此是“最后”。那次捕获会有什么作用?@rajibdotnet答案没有改变,推理仍然是一样的。谢谢@slugster,但我无法合理地对-1@rajibdotnet不是我投了你的票,我认为这是因为有人不喜欢你问题的原始形式。别担心,我已经有好问题被否决了,没有理由,这是经常发生的。