为什么 lock 语句的 C# Monitor class 实现只有 try-finally 而没有 catch?

Why C# Monitor class implementation for lock statement have try-finally only but not catch?

为什么 C# Monitor class lock 语句的实现只有 try-finally 而没有 catch?

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

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

一般来说,你有 finally 但没有 catch 的原因是因为当范围(try)退出时你有一些你想要 运行 的代码不管退出是如何发生的。

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