Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python

Raising exceptionns

i tried running this code and it did but it keeps on returning "good idea" even though there are less than 3 characters..where did i go wrong? def suggest(product_idea): if len(product_idea) < 3: raise ValueError("More characters needed.") return product_idea + "inator" try: users_idea = str(input("What's your idea? ")) except ValueError as err: print("Try again..") print("({})".format(err))
else: print("good idea!")

1 Answer

Donald Morales
seal-mask
.a{fill-rule:evenodd;}techdegree
Donald Morales
Python Development Techdegree Student 15,982 Points

Hello Paul!

The reason the code defaults to the else statement block is because your suggest() function isn't in the try block:

def suggest(product_idea):
    if len(product_idea) < 3:
        raise ValueError("More characters needed.")
    else:
        return product_idea + "inator"


try:
    users_idea = input("What's your idea? ")
except ValueError as err:
    print("Try again..")
    print("({})".format(err))
else:
    print("good idea!")

Placing the the function there will get the code running as expected:

try:
    users_idea = input("What's your idea? ")
    suggest(users_idea)

Thank you Donald..It's now working..