• Courses
  • Tutorials
  • Jobs
  • Practice
  • Contests

C++ Exception Handling

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.

Last Updated :
Take a part in the ongoing discussion