Visual C++ .NET/Statement/finally
Exception Finally
<source lang="csharp">
- include "stdafx.h"
using namespace System; void main(){
for (int i = 0; i < 3; i++){ try{ if (i == 0){ Console::WriteLine("\tCounter = 0"); }else if (i == 1){ throw gcnew ApplicationException("\t*Exception* Counter = 1"); }else{ Console::WriteLine("\tCounter > 1"); } }catch (ApplicationException ^e){ Console::WriteLine(e->Message); }finally{ Console::WriteLine("\tDone every time"); } }
}
</source>
finally block of exceptin catching
<source lang="csharp">
- include "stdafx.h"
using namespace System; int main() { try
{ // ... } catch( Exception^ ) { } finally { Console::WriteLine("finally block!"); }
}
</source>
Multiple finally blocks
<source lang="csharp">
- include "stdafx.h"
using namespace System; int main() {
try { try { throw gcnew Exception("XYZ"); } catch( Exception^ exception) { Console::WriteLine("Inner catch"); } finally { Console::WriteLine("Inner finally"); } } catch(Exception^ exception) { Console::WriteLine("Outer catch"); } finally { Console::WriteLine("Outer finally"); }
}
</source>