Visual C++ .NET/Statement/finally
Exception Finally
#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");
}
}
}
finally block of exceptin catching
#include "stdafx.h"
using namespace System;
int main() {
try
{
// ...
}
catch( Exception^ )
{
}
finally
{
Console::WriteLine("finally block!");
}
}
Multiple finally blocks
#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");
}
}