Examveda

What will be the output of the following C++ code?
#include <iostream>
using namespace std;
class MyException
{
    public:
    MyException(int value) : mValue(value)
    {
    }
    int mValue;
};
class MyDerivedException : public MyException
{
    public:
        MyDerivedException(int value, int anotherValue) : MyException(value),    mAnotherValue(anotherValue)
        {
        }
        int mValue;
        int mAnotherValue;
};
void doSomething()
{
    throw MyDerivedException(10,20);
}
int main()
{
    try
   {
        doSomething();
    }
    catch (MyDerivedException &exception)
    {
        cout << "\nCaught Derived Class Exception\n";
    }
    catch (MyException &exception)
    {
        cout << "\nCaught Base Class Exception\n";
    }
    return 0;
}

A. Caught Base Class Exception

B. Caught Derived Class Exception

C. Caught Base & Derived Class Exception

D. Caught Base Class

Answer: Option B


Join The Discussion

Related Questions on C plus plus miscellaneous

What is the difference between '++i' and 'i++' in C++?

A. None of the above

B. They both have the same effect

C. '++i' increments the value of 'i' before returning it, while 'i++' increments the value of 'i' after returning it

D. '++i' increments the value of 'i' after returning it, while 'i++' increments the value of 'i' before returning it