Why do I get an IndentationError from a properly indented function (following a "try" with no "except")?
indentation, python
Solution
It's because you have:
def first_function(x):
try:
return do_something_else()
without a matching `except` block after the `try:` block. Every `try` must have at least one matching `except`.
See the Errors and Exceptions section of the Python tutorial.
Problem
I have some code like: ``` def first_function(x): try: return do_something_else() def second_function(x, y, z): pass ``` But I get an error like: ``` def second_function(x, y, z): ^ IndentationError: unexpected unindent ``` The indentation uses only spaces and everything lines up properly. What is wrong? This question is specifically about the fact that a `try` block requires a corresponding `except` or `finally`. Some older versions of Python will detect this as an `IndentationError` for subsequent code, because it's expecting that code to be "inside the `try`" when an `except` or `finally` hasn't been seen yet. More recent versions of Python may report the error differently. See also I'm getting an IndentationError (or a TabError). How do I fix it? for general information about `IndentationError`. See also Why do I get a SyntaxError (or an IndentationError) in a line with perfectly valid syntax? for another common case where a syntax issue is reported in a misleading way.