CPP Language / Exception handling

Exceptions are events that occur during the execution of a program that disrupt the normal flow of instructions (e.g. divide by zero, array access out of bound, etc.) and is based on 3 keywords: try, catch, and throw in c++.

Exception Handling Syntax
try {
// protected code
}
catch( ExceptionName e1 ) { // catch block }
catch( ExceptionName e2 ) { // catch block }
catch( ExceptionName eN ) { // catch block }

Keyword Details
try Block Code which generates exceptions written in try block
Catch Block It is used to catch exceptions which are there in the try block and program can consists of more than 1 catch block.
throw Program throws an exception which is done using a throw keyword.

Program Output

#include
using namespace std;
double div(int a, int b) {
if( b == 0 ) { throw "Division by zero condition!"; }
return (a/b);
}

int main ()
{
int x = 50; int y = 0; double z = 0;
try { z = div(x, y);
cout << z << endl;
} catch (const char* msg) { cerr << msg << endl; }
return 0;
}

Division by zero condition!

Rethrowing an exception
Program Output

#include
using namespace std;
void MyHandler()
{
try
{ throw “hello”; }
catch (const char*)
{
cout <<”Caught exception inside MyHandler\n”;
throw; //rethrow char* out of function
}
}

int main()
{ cout<< “Main start”;
try
{ MyHandler(); }
catch(const char*)
{
cout <<”Caught exception inside Main\n”;
}
cout << “Main end”;
return 0;
}


Main start
Caught exception inside MyHandler
Caught exception inside Main
Main end



Home     Back