Restricting function throw types. : Throw « Language « C++






Restricting function throw types.

Restricting function throw types.
 

#include <iostream>
using namespace std;


void myFunction(int test) throw(int, char, double)
{
  if(test==0) 
     throw test;                // throw int
  if(test==1) 
     throw 'a';                 // throw char
  if(test==2) 
     throw 333.23;              // throw double
}

int main()
{
  cout << "start\n";

  try{
    myFunction(0);                       
  }
  catch(int i) {
    cout << "Caught an integer\n";
  }
  catch(char c) { 
    cout << "Caught char\n";
  }
  catch(double d) { 
    cout << "Caught double\n";
  }

  try{
    myFunction(1);                       
  }
  catch(int i) {
    cout << "Caught an integer\n";
  }
  catch(char c) { 
    cout << "Caught char\n";
  }
  catch(double d) { 
    cout << "Caught double\n";
  }

  try{
    myFunction(2);                       
  }
  catch(int i) {
    cout << "Caught an integer\n";
  }
  catch(char c) { 
    cout << "Caught char\n";
  }
  catch(double d) { 
    cout << "Caught double\n";
  }


  cout << "end";

  return 0;
}



           
         
  








Related examples in the same category

1.throw an integer out
2.Throw Int out when reading integer file
3.Throw Char Star
4.Throwing Two Types
5.Throwing Multiple Basic
6.Throwing Exceptions
7.throw different types of exceptions with if statement
8.Throwing Exceptions out of nested function calls
9.throw exception out of function
10.Example of 'rethrowing' an exception.Example of 'rethrowing' an exception.
11.An exception can be thrown from outside the try blockAn exception can be thrown from outside the try block
12.Demonstrating stack unwinding.
13.Demonstration of rethrowing an exception.
14.checks for divide-by-zero and throw exception