C++ Programming Questions and Answers – Catching Exceptions

This section on C++ programming interview questions and answers focuses on “Catching Exceptions”. One shall practice these interview questions to improve their C++ programming skills needed for various interviews (campus interviews, walkin interviews, company interviews), placements, entrance exams and other competitive exams. These questions can be attempted by anyone focusing on learning C++ programming language. They can be a beginner, fresher, engineering graduate or an experienced IT professional. Our C++ programming interview questions come with detailed explanation of the answers which helps in better understanding of C++ concepts.

Here is a listing of C++ programming interview questions on “Catching Exceptions” along with answers, explanations and/or solutions:

1. How many parameters does the throw expression can have?
a) 1
b) 2
c) 3
d) 4
View Answer

Answer: a
Explanation: In c++ program, We can be able to throw only one error at a time.

2. Where exception are handled?
a) inside the program
b) outside the regular code
c) both inside or outside
d) main program
View Answer

Answer: b
Explanation: Exception are handled outside the regular code.

3. Which is used to check the error in the block?
a) try
b) throw
c) catch
d) handler
View Answer

Answer: a
Explanation: The try block is used to check for errors, if there is any error means, it can throw it to catch block.
advertisement
advertisement

4. What will be the output of the following C++ code?

  1.     #include <iostream>
  2.     #include <exception>
  3.     using namespace std;
  4.     class myexception: public exception
  5.     {
  6.         virtual const char* what() const throw()
  7.         {
  8.             return "exception arised";
  9.         }
  10.     } myex;
  11.     int main () 
  12.     {
  13.         try
  14.         {
  15.             throw myex;
  16.         }
  17.         catch (exception& e)
  18.         {
  19.             cout << e.what() << endl;
  20.         }
  21.         return 0;
  22.     }

a) exception arised
b) error
c) exception
d) runtime error
View Answer

Answer: a
Explanation: In this program, We are arising a standard exception and catching that and returning a statement.
Output:

Note: Join free Sanfoundry classes at Telegram or Youtube
$ g++ goe.cpp
$ a.out
exception arised

5. What will be the output of the following C++ code?

advertisement
  1.     #include <iostream>
  2.     using namespace std;
  3.     int main()
  4.     {
  5.         int age=5;
  6.         try 
  7.         {
  8.             if (age < 0)
  9.                 throw "Positive Number Required";
  10.             cout  << age << "\n\n";
  11.         }
  12.         catch(const char* Message)
  13.         {
  14.             cout << "Error: " << Message;
  15.         }
  16.         return 0;
  17.     }

a) 5
b) 10
c) 15
d) Positive Number Required
View Answer

Answer: a
Explanation: In this program, We are checking the age of a person, If it is zero means, We will arise a exception.
Output:

advertisement
$ g++ goe1.cpp
$ a.out
5

6. What will be the output of the following C++ code?

  1.     #include <iostream>
  2.     using namespace std;
  3.     double division(int a, int b)
  4.     {
  5.         if ( b == 0 )
  6.         {
  7.             throw "Division by zero condition!";
  8.         }
  9.         return (a / b);
  10.     }
  11.     int main ()
  12.     {
  13.         int x = 50;
  14.         int y = 0;
  15.         double z = 0;
  16.         try 
  17.         {
  18.             z = division(x, y);
  19.             cout << z << endl;
  20.         }
  21.         catch (const char* msg) 
  22.         {
  23.             cout << msg << endl;
  24.         }
  25.         return 0;
  26.     }

a) 50
b) 0
c) Division by zero condition!
d) 100
View Answer

Answer: c
Explanation: We are dividing the values and if one of the values is zero means, We are arising an exception.
Output:

$ g++ goe2.cpp
$ a.out
Division by zero condition!

7. What will be the output of the following C++ code?

  1.     #include <iostream>
  2.     #include <string>
  3.     using namespace std;
  4.     int main()
  5.     {
  6.         double Op1 = 10, Op2 = 5, Res;
  7.         char Op;
  8.         try 
  9.         {   
  10.             if (Op != '+' && Op != '-' && Op != '*' && Op != '/')
  11.                 throw Op;
  12.             switch(Op)
  13.             {
  14.             case '+':
  15.                 Res = Op1 + Op2;
  16.                 break;
  17.             case '-':
  18.                 Res = Op1 - Op2;
  19.                 break;
  20.             case '*':
  21.                 Res = Op1 * Op2;
  22.                 break;
  23.             case '/':
  24.                 Res = Op1 / Op2;
  25.                 break;
  26.              }
  27.              cout << "\n" << Op1 << " " << Op << " "<< Op2 << " = " << Res;
  28.          }
  29.          catch (const char n)
  30.          {
  31.              cout << n << " is not a valid operator";
  32.          }
  33.          return 0;
  34.     }

a) 15
b) 5
c) 2
d) is not a valid operator
View Answer

Answer: d
Explanation: It will arise a exception because we missed a operator.
Output:

$ g++ goe3.cpp
$ a.out
is not a valid operator

8. What will be the output of the following C++ code?

  1.     #include<iostream>
  2.     #include "math.h"
  3.     using namespace std;
  4.     double MySqrt(double d)
  5.     {
  6.         if (d < 0.0)
  7.         throw "Cannot take sqrt of negative number";     
  8.         return sqrt(d);
  9.     }
  10.     int main()
  11.     {
  12.         double d = 5;
  13.         cout << MySqrt(d) << endl;
  14.     }

a) 5
b) 2.236
c) Error
d) Cannot take sqrt of negative number
View Answer

Answer: b
Explanation: We are finding the square root of the number, if it is a positive number, it can manipulate, Otherwise it will arise a exception.
Output:

$ g++ goe4.cpp
$ a.out
2.236

9. How to handle the exception in constructor?
a) We have to throw an exception
b) We have to return the exception
c) We have to throw an exception & return the exception
d) We have to catch an exception
View Answer

Answer: a
Explanation: As a constructor don’t have a return type, We have to throw the exception.

10. What should present when throwing a object?
a) constructor
b) copy-constructor
c) destructor
d) copy-destructor
View Answer

Answer: b
Explanation: copy-constructor is mandatory for throwing a object.

Sanfoundry Global Education & Learning Series – C++ Programming Language.

To practice all areas of C++ language, here is complete set of 1000+ Multiple Choice Questions and Answers.

If you find a mistake in question / option / answer, kindly take a screenshot and email to [email protected]

advertisement
advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.