我的除外有什么问题?

lag*_*ane 23 python exception-handling syntax-error except

我的上面有一个SyntaxError,除了:

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)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

File "main.py", line 199

except getopt.GetoptError, e:

SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法?

geo*_*org 41

您使用python3并在python3中,raise语法不再接受以逗号分隔的参数.

as改为使用:

except getopt.GetoptError as e:
Run Code Online (Sandbox Code Playgroud)

此表单也向后兼容2.6和2.7.


Abh*_*jit 6

您的语法对于捕获异常无效

你应该写except getopt.GetoptError as e: 而不是except getopt.GetoptError, e:

  • 不过,这是Python早期版本中的正确语法。 (2认同)