最后
除了 try 和 catch 子句外, CLR 异常处理支持 finally 子句。 语义与 __finally 相同的块在结构化异常处理 (SEH)。 __finally 块可以按照 try 或 catch 块。
备注
finally 的目的块将清理该异常后的所有资源发生。 请注意 finally 块总是执行,因此,即使异常未引发。 ,如果托管异常在关联的 try 中引发块, catch 块仅执行。
finally 是上下文相关关键字;请参见 上下文相关的关键字(C++ 组件扩展) 有关更多信息。
示例
下面的示例演示简单的 finally 块:
// keyword__finally.cpp
// compile with: /clr
using namespace System;
ref class MyException: public System::Exception{};
void ThrowMyException() {
throw gcnew MyException;
}
int main() {
try {
ThrowMyException();
}
catch ( MyException^ e ) {
Console::WriteLine( "in catch" );
Console::WriteLine( e->GetType() );
}
finally {
Console::WriteLine( "in finally" );
}
}