#include <iostream>
using std::cout;
using std::endl;
void function(int n) throw(int, char, double) {
if (n == 0)
throw n;
if (n == 1)
throw 'z';
if (n == 2)
throw 3.14;
}
int main()
{
int i = 0;
try {
function(i);
}
catch (int i) {
cout << "i = " << i << " catch (int i)" << endl;
}
catch (char ch) {
cout << "i = " << i << " catch (char ch)" << endl;
}
catch (double d) {
cout << "i = " << i << " catch (double d)" << endl;
}
i = 1;
try {
function(i);
}
catch (int i) {
cout << "i = " << i << " catch (int i)" << endl;
}
catch (char ch) {
cout << "i = " << i << " catch (char ch)" << endl;
}
catch (double d) {
cout << "i = " << i << " catch (double d)" << endl;
}
i = 2;
try {
function(i);
}
catch (int i) {
cout << "i = " << i << " catch (int i)" << endl;
}
catch (char ch) {
cout << "i = " << i << " catch (char ch)" << endl;
}
catch (double d) {
cout << "i = " << i << " catch (double d)" << endl;
}
return 0;
}
/*
run:
i = 0 catch (int i)
i = 1 catch (char ch)
i = 2 catch (double d)
*/