finally

除了 trycatch 子句外,CLR 异常处理还支持 finally 子句。 语义与结构化异常处理 (SEH) 中的 __finally 块相同。 __finally 块可以跟在 trycatch 块之后。

备注

finally 的目的是清理出现异常后留下的任何资源。 请注意,即使未引发异常,也会始终执行 finally 块。 只有在关联的 try 块内引发托管异常时,才会执行 catch 块。

finally 是与上下文相关的关键字;有关详细信息,请参阅上下文相关的关键字

示例

下面的示例演示了一个简单 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" );
   }
}
in catch
MyException
in finally

另请参阅

异常处理