C++ Exception Handling

Last Updated :
Discuss
Comments

Question 1

CPP
#include <iostream> using namespace std; int main() {    int x = -1;    try {       cout << "Inside try \\n";       if (x < 0)       {          throw x;          cout << "After throw \\n";       }    }    catch (int x ) {       cout << "Exception Caught \\n";    }     cout << "After catch \\n";    return 0; } 
  • Inside try  Exception Caught  After throw   After catch
  • Inside try  Exception Caught  After catch
  • Inside try  Exception Caught
  • Inside try  After throw  After catch

Question 2

What is the advantage of exception handling ?
  1. Remove error-handling code from the software's main line of code.
  2. A method writer can choose to handle certain exceptions and delegate others to the caller.
  3. An exception that occurs in a function can be handled anywhere in the function call stack.
  • Only 1
  • 1, 2 and 3
  • 1 and 3
  • 1 and 2

Question 3

What should be put in a try block?

 1. Statements that might cause exceptions 2. Statements that should be skipped in case of an exception 
  • Only 1

  • Only 2

  • Both 1 and 2

Question 4

Output of following program C
#include<iostream> using namespace std;  class Base {}; class Derived: public Base {}; int main() {    Derived d;    try {        throw d;    }    catch(Base b) {         cout<<"Caught Base Exception";    }    catch(Derived d) {         cout<<"Caught Derived Exception";    }    return 0; } 
  • Caught Derived Exception
  • Caught Base Exception
  • Compiler Error

Question 5

C
#include <iostream> using namespace std;  int main() {     try     {        throw 'a';     }     catch (int param)     {         cout << "int exception\n";     }     catch (...)     {         cout << "default exception\n";     }     cout << "After Exception";     return 0; } 
  • default exception  After Exception
  • int exception  After Exception
  • int exception
  • default exception

Question 6

C
#include <iostream> using namespace std;  int main() {     try     {        throw 10;     }     catch (...)     {         cout << "default exception\\n";     }     catch (int param)     {         cout << "int exception\\n";     }      return 0; } 
  • default exception
  • int exception
  • Compiler Error

Question 7

CPP
#include <iostream> using namespace std;  int main() {     try     {         try         {             throw 20;         }         catch (int n)         {             cout << "Inner Catch\n";             throw;         }     }     catch (int x)     {         cout << "Outer Catch\n";     }     return 0; } 
  • Outer Catch
  • Inner Catch
  • Inner Catch
    Outer Catch
  • Compiler Error

Question 8

C
#include <iostream> using namespace std;  class Test { public:    Test() { cout << "Constructing an object of Test " << endl; }   ~Test() { cout << "Destructing an object of Test "  << endl; } };  int main() {   try {     Test t1;     throw 10;   } catch(int i) {     cout << "Caught " << i << endl;   } } 
  • Caught 10
  • Constructing an object of Test   Caught 10
  • Constructing an object of Test   Destructing an object of Test   Caught 10
  • Compiler Errror

Question 9

C
#include <iostream> using namespace std;  class Test {   static int count;   int id; public:   Test() {     count++;     id = count;     cout << "Constructing object number " << id << endl;     if(id == 4)        throw 4;   }   ~Test() { cout << "Destructing object number " << id << endl; } };  int Test::count = 0;  int main() {   try {     Test array[5];   } catch(int i) {     cout << "Caught " << i << endl;   } } 
  • Constructing object number 1  Constructing object number 2  Constructing object number 3  Constructing object number 4  Destructing object number 1  Destructing object number 2  Destructing object number 3  Destructing object number 4  Caught 4
  • Constructing object number 1  Constructing object number 2  Constructing object number 3  Constructing object number 4  Destructing object number 3  Destructing object number 2  Destructing object number 1  Caught 4
  • Constructing object number 1  Constructing object number 2  Constructing object number 3  Constructing object number 4  Destructing object number 4  Destructing object number 3  Destructing object number 2  Destructing object number 1  Caught 4
  • Constructing object number 1  Constructing object number 2  Constructing object number 3  Constructing object number 4  Destructing object number 1  Destructing object number 2  Destructing object number 3  Caught 4

Question 10

Which of the following is true about exception handling in C++? 1) There is a standard exception class like Exception class in Java. 2) All exceptions are unchecked in C++, i.e., compiler doesn't check if the exceptions are caught or not. 3) In C++, a function can specify the list of exceptions that it can throw using comma separated list like following.
    void fun(int a, char b) throw (Exception1, Exception2, ..) 
  • 1 and 3
  • 1, 2 and 3
  • 1 and 2
  • 2 and 3

There are 12 questions to complete.

Take a part in the ongoing discussion