How to throw different types from function in C++

1 Answer

0 votes
#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)

*/

 



answered Jun 3, 2018 by avibootz
edited Jun 4, 2018 by avibootz
...