为什么 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
中将始终是 运行 无论是否有异常。
为什么 C# Monitor class lock 语句的实现只有 try-finally 而没有 catch?
var obj = new object();
try
{
Monitor.Enter(obj);
}
finally
{
Monitor.Exit(obj);
}
您应该发布一些代码来解释您的意思...
一般来说,你有 finally
但没有 catch
的原因是因为当范围(try
)退出时你有一些你想要 运行 的代码不管退出是如何发生的。
换句话说,编写代码的人并不关心抛出什么异常(如果有的话),因为他们当时没有处理它(它只会冒泡到下一层代码),但无论如何在 finally
中将始终是 运行 无论是否有异常。