Reputation: 190809
With the following code, I get the "Gotcha!" with python.
try: x = 0 y = 3/x except Exception: # ZeroDivisionError print "Gotcha!"
I think this is the equivalent C++ code, but it can't catch the exeption.
#include <iostream>
int main()
{
int x = 0;
//float y = 3.0/x;
int z = 0;
try {
z = 3 / x;
} catch (std::exception) {
std::cout << "Gotcha!";
}
std::cout << z;
}
Floating point exception
What went wrong? How can I catch this exception?
Upvotes: 1
Views: 1961
Reputation: 791889
In C++, dividing by zero doesn't generate an exception; it causes undefined behaviour.
You must check you divisor before actually performing the division, as there is no way to know what will happen if you do actually evaluate a division expression with a zero divisor.
Upvotes: 5