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.

Paul Ngwendere
9,138 PointsRaising 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
Python Development Techdegree Student 15,982 PointsHello 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)
Paul Ngwendere
9,138 PointsPaul Ngwendere
9,138 PointsThank you Donald..It's now working..