Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Python Basics (2015) Logic in Python Try and Except

Shamushideen Sule
PLUS
Shamushideen Sule
Courses Plus Student 2,509 Points

try, except and else

You're doing great! Just one more task but it's a bigger one. Right now, we turn everything into a float. That's great so long as we're getting numbers or numbers as a string. We should handle cases where we get a non-number, though. Add a try block before where you turn your arguments into floats. Then add an except to catch the possible ValueError. Inside the except block, return None. If you're following the structure from the videos, add an else: for your final return of the added floats.

trial.py
def add(num1, num2):
try:
    return float(num1) + float(num2)
except ValueError:
    return None
else:
    return add(45, 50)

What's your question? is there something you need help with ?

1 Answer

Steven Parker
Steven Parker
231,269 Points

Everything that is part of a function must be indented more than the "def" line of the function. So the function in the code shown here has no contents.

Just indent every line below the "def" one more stop.

Also, since you return from both the "try" and "except", the "else" is not needed (it will never be used) — you wouldn't want the function to call itself anyway, that would create an infinite recursion loop!