Checking for a divide-by-zero exception. : try catch « Language « C++






Checking for a divide-by-zero exception.

  
#include <iostream>

using std::cout;
using std::cin;
using std::endl;

class DivideByZeroException {
public:
   DivideByZeroException()
      : message( "attempted to divide by zero" ) { }
   const char *what() const { return message; }
private:
   const char *message;
};

double quotient( int numerator, int denominator )
{
   if ( denominator == 0 )
      throw DivideByZeroException();

   return static_cast< double > ( numerator ) / denominator;
}
int main()
{
   int number1, number2;
   double result;

   cout << "Enter two integers (end-of-file to end): ";

   while ( cin >> number1 >> number2 ) {
      try {
         result = quotient( number1, number2 );
         cout << "The quotient is: " << result << endl;
      }
      catch ( DivideByZeroException ex ) { 
         cout << "Exception occurred: " << ex.what() << '\n';
      }
      cout << "\nEnter two integers (end-of-file to end): ";
   } 
   cout << endl;
   return 0;
}
  
    
  








Related examples in the same category

1.Use multiple catch statements. Use multiple catch statements.
2. Localize a try/catch to a function. Localize a try/catch to a function.
3.Code block of try...catch
4.Catch more than one type of exceptions
5.Catch different types of exception
6.Catch exception from a function
7.Catch char pointer type exception
8.Catch int type exception in a function
9.Catch all types of exceptions
10.Catch By Non Const Reference
11.Catch By Value
12.Using Multiple catch StatementsUsing Multiple catch Statements
13.Finally catch all Exceptions