Наконец

Помимо try и предложениям catch, поддержка обработки исключений среды CLR предложение finally. Семантика идентична блоку __finally в структурной обработке исключений (SEH). Блок __finally может следовать блок try или catch.

Заметки

Цель блока finally для освобождения любых ресурсов, которые еще после исключения было. Обратите внимание, что блок finally выполняется всегда, даже если исключение не было создано. Блок catch только выполняется, если управляемое исключение в соответствующий блок try.

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++)