Examveda

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

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

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