HiveBrain v1.2.0
Get Started
← Back to all entries
debugpythonCriticalCanonical

How can I catch multiple exceptions in one line? (in the "except" block)

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
howlinetheexceptblockexceptionsmultiplecancatchone

Problem

I know that I can do:

try:
    # do something that may fail
except:
    # do this if ANYTHING goes wrong


I can also do this:

try:
    # do something that may fail
except IDontLikeYouException:
    # say please
except YouAreTooShortException:
    # stand on a ladder


But if I want to do the same thing inside two different exceptions, the best I can think of right now is to do this:

try:
    # do something that may fail
except IDontLikeYouException:
    # say please
except YouAreBeingMeanException:
    # say please


Is there a way that I can do something like this (since the action to take in both exceptions is to say please):

try:
    # do something that may fail
except IDontLikeYouException, YouAreBeingMeanException:
    # say please


Now this really won't work, as it matches the syntax for:

try:
    # do something that may fail
except Exception, e:
    # say please


So, my effort to catch the two distinct exceptions doesn't exactly come through.

Is there a way to do this?

Solution

From Python Documentation:


An except clause may name multiple exceptions as a parenthesized tuple, for example

except (IDontLikeYouException, YouAreBeingMeanException) as e:
    pass


Or, for Python 2 only:

except (IDontLikeYouException, YouAreBeingMeanException), e:
    pass


Separating the exception from the variable with a comma will still work in Python 2.6 and 2.7, but is now deprecated and does not work in Python 3; now you should be using as.

Code Snippets

except (IDontLikeYouException, YouAreBeingMeanException) as e:
    pass
except (IDontLikeYouException, YouAreBeingMeanException), e:
    pass

Context

Stack Overflow Q#6470428, score: 5280

Revisions (0)

No revisions yet.