#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
*/