finally
try
catch
Помимо предложений, обработка исключений 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