finally
En plus des try
clauses et catch
des clauses, la gestion des exceptions CLR prend en charge une finally
clause. La sémantique est identique au bloc dans la __finally
gestion des exceptions structurées (SEH). Un __finally
bloc peut suivre un ou catch
un try
bloc.
Notes
L’objectif du bloc est de finally
propre toutes les ressources laissées après l’exception. Notez que le finally
bloc est toujours exécuté, même si aucune exception n’a été levée. Le catch
bloc est exécuté uniquement si une exception managée est levée dans le bloc associé try
.
finally
est un mot clé sensible au contexte ; consultez Mots clés sensibles au contexte pour plus d’informations.
Exemple
L’exemple suivant illustre un bloc simple 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