#include "stdafx.h"
using namespace System;
ref class LevelOneException : public ApplicationException{
public:
LevelOneException( String ^err );
};
LevelOneException::LevelOneException(String ^err) : ApplicationException(err)
{
}
ref class LevelTwoException : public LevelOneException{
public:
LevelTwoException( String ^err );
};
LevelTwoException::LevelTwoException(String ^err) : LevelOneException(err)
{
}
void main(){
for (int i = 0; i < 4; i++){
try{
if (i == 1)
throw gcnew ApplicationException("\tBase Exception Thrown");
else if (i == 2)
throw gcnew LevelOneException("\tLevel 1 Exception Thrown");
else if (i == 3)
throw gcnew LevelTwoException("\tLevel 2 Exception Thrown");
}catch (LevelTwoException ^e2){
Console::WriteLine(e2->Message);
Console::WriteLine("\tLevel 2 Exception");
}
catch (LevelOneException ^e1)
{
Console::WriteLine(e1->Message);
Console::WriteLine("\tLevel 1 Exception");
}
catch (ApplicationException ^e)
{
Console::WriteLine(e->Message);
Console::WriteLine("\tBase Exception");
}
}
}