FAQ: Control Flow - Try and Except Statements

This community-built FAQ covers the “Try and Except Statements” exercise from the lesson “Control Flow”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Computer Science
Data Science

FAQs on the exercise Try and Except Statements

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

I think I understand. This one is tricky because in the example the try except statements are part of the function. In the exercise they are not. Does that sound right?

Agree, the sample code and lesson did not provide enough to complete the exercise. I set it up like the sample and had to use the hints to figure it out. It made sense after I used the hints. Basically it…calls the function created with the value created which will throw an exception and then prints the error message.


In the lesson, we are taught that “try” and “except” statements are used to check for possible errors a user might encounter. However, I suppose that the process of checking errors does not fulfill the final scope of any control flow, but it is just used complementary in order to write a clean code without errors.
If this right, I would expect that “try” and “except” statements would be used in conjuction with other statements such as “if, else” etc, all written in the same code/function.
So, my question is , which is the right order to combine all these statements when writing the parts of a function? Could you please give an example?

the vital piece of information missing here is that we can also throw exceptions:

def validate_username(username):
    if ( len(username) < 5 ):
        raise Exception("Username to short")
def main():
    username = raw_input("input username: ") # replace with input if you use python3
    except Exception as e:

this also explains what happens when exceptions occur.

you could expand the validate_username() function with a lot more exceptions, so then the control flow logic (if, elif, else) is within the validate_username, then other people can use your function handle the exception as they like.


I believe this is the first time I am seeing the “raise” keyword. Codecademy usually explains new keywords before expecting us to code with them. This was a poorly written exercise. I too needed the hints. I came here for more explanation.


There are some arguments used here that i never heard about, am i supposed to be googling things while doing the lessons?

To me seems a poorly written exercise, that doesn’t explain previous knowledge we should have to understand fully this lesson.

Needs a review.

1 Like

100% yes. Part of learning to code is becoming comfortable with the resources available, as no course will cover everything.

That said, I agree that this lesson could have been more clear.

1 Like

I do understand the part about googling, but if this is a lesson should only include content we already know.

Wouldn’t be to hard to include a previous lesson going over the raise argument and the zerovalueerror etc.

1 Like

I just came here to say that I have NO idea at all what this lesson was supposed to teach me. It is extremely confusing. I would recommend introducing one new concept at a time, not several.