How to handle divide by zero exception using runtime_error in class with C++

1 Answer

0 votes
#include <iostream>
#include <stdexcept>

using std::cout;
using std::endl;
using std::runtime_error; 

class DivideByZero : public runtime_error {
public:
	DivideByZero::DivideByZero() : runtime_error("divide by zero") {}
};
  
double divide(int x, int y) {
	if (y == 0)
		throw DivideByZero(); 
	
	return static_cast< double >(x) / y;
} 

 int main()
 {
	int n = 13; 
	double result; 
	
	int i = 0;
	while (i++ < 2)
	{
		try {
			   result = divide(n, i - 1);
			   cout << result << endl;
		} 
		catch (DivideByZero &DivideByZero)
		{
			cout <<  DivideByZero.what() << endl;
		} 
		
	} 
	cout << endl;
	
	return 0; 
} 


/*
run:

divide by zero
13

*/

 



answered Jun 4, 2018 by avibootz

Related questions

1 answer 194 views
1 answer 204 views
1 answer 141 views
141 views asked Oct 8, 2022 by avibootz
1 answer 182 views
182 views asked Mar 7, 2017 by avibootz
1 answer 145 views
1 answer 159 views
...