Python异常语法差异?

Python异常语法差异?,python,exception,syntax,error-handling,Python,Exception,Syntax,Error Handling,我只是对python异常的语法感到好奇,因为我似乎无法理解何时支持您使用下面的语法捕获异常 try: """ Code that can raise an exception... """ except Exception as e: pass 及 区别是什么?除了例外,在Python 3中不推荐使用e 正确的形式是: try: ... except Exception as e: ... 请参阅:注意:正如Martijn指出的那样,逗

我只是对python异常的语法感到好奇,因为我似乎无法理解何时支持您使用下面的语法捕获异常

try:
    """
      Code that can raise an exception...
    """
 except Exception as e:
     pass


区别是什么?

除了例外,在Python 3中不推荐使用e

正确的形式是:

try:
    ...
except Exception as e:
    ...

请参阅:

注意:正如Martijn指出的那样,
逗号变量
表单在Python3.x中不受欢迎。因此,最好使用
作为
表单

依照

相当于

except Exception as e:
在一次捕获多个异常时仍然使用逗号,如下所示

except (NameError, ValueError) as e:

请记住,捕获多个异常时,异常周围的括号是必需的。

除了后者是首选的之外,前者在Python 3中已被弃用并完全删除。最后一行显示了引入
as
以替换逗号的原因。当捕捉到多个异常时,这让人非常困惑。使用
except(namererror,ValueError)作为e:
在那里。@MartijnPieters得到了你:)更新后,将后者写为
except-namererror,ValueError:
是很常见的,并且想知道为什么它不起作用,或者使用
except(namererror,e):
并且想知道为什么在
e
上仍然出现
namererror
。你仍然在暗示你只能用现在不推荐的语法捕获多个异常。我想我不太想谢谢@MartijnPieters
except Exception as e:
except (NameError, ValueError) as e: