try
{
operation1();
operation2();
...
}
finally
{
try
{
finalizer_operation1();
finalizer_operation2();
}
finally
{
very_critical_finalizer_operation_which_should_occurs_at_the_end();
}
}
这个可以吗?将终结器作为另一个try/finally
块(因为finalizer_operationX()
可能会抛出,我必须确保very_critical...()
最后会发生。
快速谷歌搜索try in finally 块什么都没有(如果你给我一个重复的链接,会删除问题),它应该可以工作,但我不确定它的设计和可能的问题。