Catch unknown exception and print it in C++

This tutorial will focus on how to handle unknown exceptions and print that in C++.

We know that in programming there are many unknown exceptions that one should handle. Exception handling is very important for the smooth running of a program. If a programmer is not able to handle such exceptions then the program may halt.

Exception Handling in C++

  • In C++, exception handling consists of three keywords try, throw and catch.
  • In a try statement, it contains a block of code to be executed.
  • Catch statement, the code is executed in a try block fails to execute.
  • If a part of the code encounters a problem, we can throw the exception using the throw keyword.

Syntax for try/catch

try {
   // the desired code to be executed
} catch( exceptionname e1 ) {
   // catch block
} catch( exceptionname e2 ) {
   // catch block
} catch( expname en ) {
   // catch block
}

Here:

  • Even though there is one try statement we can have multiple catch blocks.
  • The “exception name” in the above syntax is the name of the exception.
  • e1, e2, and en are the user-defined exception names pointing to these exceptions.

C++  codes  for catching exceptions

Example 1:

#include <bits/stdc++.h>
using namespace std;

int main(){
    //declare a vector
   vector<int> list;
  list.push_back(0);	
  list.push_back(1);	
  try
  {    
                //accessing an element that is the out of bound
    list.at(2);		
  }
  catch (exception& e)
  {       
                //printing the error message
    cout << "error:index out of bound" << endl;
  }
  return 0;
}

Output:

error: index out of bound

 

Example 2:

#include <bits/stdc++.h>
using namespace std;

double divide(int p, int q) {

  if (q == 0) {
    throw "error: Division by zero is undefined";
  }
  return (p/q);
}

int main() {
  int x = 8 , y=0;
  double res = 0;

  try {
    res = divide(x, y);
    cout << res << endl;
  }
  catch (const char* e) {
    cerr << e << endl;
  }
  return 0;
}

Output:

error: Division by zero is undefined

Hence, In this way, we can handle unknown exceptions and print them.

Leave a Reply

Your email address will not be published.