What's wrong with my except? [duplicate]

I've got a SyntaxError on my except:

try:
    opts, args = getopt.getopt(sys.argv[1:], 'P:D:H:d:u:p:nvhmJi:c:Ml:TB:',
            ['host=', 'port=', 'directory=', 'user=', 'password=',
             'daemon=', 'noauth', 'help', 'verbose', 'mysql', 
             'icounter=', 'config=', 'nolock', 'nomime', 'loglevel', 'noiter',
             'baseurl='])
except getopt.GetoptError, e:
    print usage
    print '>>>> ERROR: %s' % str(e)
    sys.exit(2)

I get the error:

File "main.py", line 199

except getopt.GetoptError, e:

SyntaxError: invalid syntax

Anyone have any idea?


You use python3 and in python3 the raise syntax no longer accepts comma-separated arguments.

Use as instead:

except getopt.GetoptError as e:

This form is also backwards-compatible with 2.6 and 2.7.


Your syntax is invalid for catching the exception

You should have written except getopt.GetoptError as e: instead of except getopt.GetoptError, e: