最后

除了 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" );
   }
}
  

请参见

其他资源

异常处理(C++ 组件扩展)