What will be the output of the following C++ code?
#include <iostream>
#include <exception>
using namespace std;
void myunexpected ()
{
cout << "unexpected handler called\n";
throw;
}
void myfunction () throw (int,bad_exception)
{
throw 'x';
}
int main (void)
{
set_unexpected (myunexpected);
try
{
myfunction();
}
catch (int)
{
cout << "caught int\n";
}
catch (bad_exception be)
{
cout << "caught bad_exception\n";
}
catch (...)
{
cout << "caught other exception \n";
}
return 0;
}
#include <iostream>
#include <exception>
using namespace std;
void myunexpected ()
{
cout << "unexpected handler called\n";
throw;
}
void myfunction () throw (int,bad_exception)
{
throw 'x';
}
int main (void)
{
set_unexpected (myunexpected);
try
{
myfunction();
}
catch (int)
{
cout << "caught int\n";
}
catch (bad_exception be)
{
cout << "caught bad_exception\n";
}
catch (...)
{
cout << "caught other exception \n";
}
return 0;
}A. unexpected handler called
B. caught bad_exception
C. caught other exception
D. both unexpected handler called & caught bad_exception
Answer: Option D

Join The Discussion