C++ Exception Handling

  Home  C++ Programming  C++ Exception Handling


“C++ exception handling job preparation guide for freshers and experienced candidates. Number of C++ Exception Handling frequently asked questions(FAQs) asked in many interviews”



29 C++ Exception Handling Questions And Answers

1⟩ Explain Exception handling for a class with an example?

Exceptions are certain disastrous error conditions that occur during the execution of a program. They could be errors that cause the programs to fail or certain conditions that lead to errors. If these run time errors are not handled by the program, OS handles them and program terminates abruptly, which is not good.

To avoid this, C++ provides Exception Handling mechanism.

The three keywords for Exception Handling are:

Try, Catch and Throw.

The program tries to do something. If it encounters some problem, it throws an exception to another program block which catches the exception.

Ex:

void main()

{

int no1, no2;

try

{

cout << “Enter two nos:”;

cin >> no1 >> no2;

if (no2 == 0)

throw “Divide by zero”;

else

throw no1/no2;

}

catch (char *s)

{

cout << s;

}

catch (int ans)

{

cout << ans;

}

}

We know that divide by zero is an exception. If user enters second no as zero, the program throws an exception, which is caught and an error message is printed else the answer is printed.

 198 views

2⟩ Can you please Illustrate Rethrowing exceptions?

Rethrowing an expression from within an exception handler can be done by calling throw, by itself, with no exception. This causes current exception to be passed on to an outer try/catch sequence. An exception can only be rethrown from within a catch block. When an exception is rethrown, it is propagated outward to the next catch block.

Consider following code:

#include <iostream>

using namespace std;

void MyHandler()

{

try

{

throw “hello”;

}

catch (const char*)

{

cout <<”Caught exception inside MyHandlern”;

throw; //rethrow char* out of function

}

}

int main()

{

cout<< “Main start”;

try

{

MyHandler();

}

catch(const char*)

{

cout <<”Caught exception inside Mainn”;

}

cout << “Main end”;

return 0;

}

O/p:

Main start

Caught exception inside MyHandler

Caught exception inside Main

Main end

Thus, exception rethrown by the catch block inside MyHandler() is caught inside main();

 193 views

3⟩ Explain benefits of Exception Handling?

The benefits of Exception Handling are:

1. Program is not terminated abruptly

2. User will understand what errors are occurring in the program.

The three keywords for Exception Handling are:

Try, Catch and Throw.

 202 views

5⟩ What is Synchronous Exceptions?

Errors that occur due to incorrect input data or incorrect handling of array indices (“out of range index”), memory overflow are known as Synchronous Exceptions

 232 views

6⟩ Describe exceptions in C++?

Exceptions: Exceptions are certain disastrous error conditions that occur during the execution of a program. They could be errors that cause the programs to fail or certain conditions that lead to errors. If these run time errors are not handled by the program, OS handles them and program terminates abruptly, which is not good. So C++ provides Exception Handling mechanism.

 190 views

19⟩ How to implement exception handling in C++?

Exception handling in C++ is implemented by using the try{} and catch(){} statements.

When a try block throws an exception, the program leaves the try block and enters the catch statement of the catch block.

If they type of the object thrown matches the arg type in the catch block, catch block is executed for handling the code.

If they are not caught, abort() function is executed by default.

When no exception is deteted or thrown then the control goes to the statement below the catch block.

 215 views

20⟩ Explain unexpected() function?

unexpected() is called when a function with an exception specification throws an exception of a type that is not listed in the exception specification for the function

A function declaration without a specification like throw(char*) may throw any type of exception, and one with throw() is not allowed to throw exceptions at all.

By default unexpected() calls terminate().

 205 views