Multi Exception Handling : try catch « Statement « Visual C++ .NET






Multi Exception Handling

 


#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");
        }
    }
} 

   
  








Related examples in the same category

1.Catch an Exception with a try/catch Block
2.Catch All exceptions
3.Catch Exception
4.Catch IndexOutOfRangeException
5.Catch IO exception
6.Nested exception catching
7.Catch custom exception and then general exception