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