Ask Your Question

Revision history [back]

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.