You can use Python try...except
blocks to catch a ZeroDivisionError
. For example, I define the two functions
def foo(x):
return 1/x
def bar(x):
try:
return 1/x
except ZeroDivisionError:
# error handling: do whatever you want here
print "Returning positive infinity..."
return Infinity
This is what the output looks like when giving various inputs into these two functions.
sage: foo(1)
1
sage: foo(0)
Traceback (click to the left of this block for traceback)
...
ZeroDivisionError: Rational division by zero
sage: bar(1)
1
sage: bar(0)
Returning positive infinity...
+Infinity
You can use try...except
blocks outside of function definitions as well.