finally

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

Замечания

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

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

См. также

Обработка исключений