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

Join The Discussion