【问题标题】:In Python, what's the difference between 'except Exception as e' and 'except Exception, e' [duplicate]在Python中,'except Exception as e'和'except Exception, e'有什么区别[重复]
【发布时间】:2011-07-04 10:25:38
【问题描述】:

在python中,有两种方法可以捕获异常

except Exception, e:

except Exception as e:

似乎“as e”是未来要使用的。在哪个版本的python中发生了这种变化?知道为什么吗?

【问题讨论】:

  • as e 语法是在 Python 2.6 中引入的。
  • 只是给任何使用 Jython 的人的说明,他们阅读了这篇文章并决定将所有“Exception, e”替换为“Exception as e”:从 Jython 2.5.2 开始尚不支持。见:stackoverflow.com/questions/3020966/jython-syntaxerror

标签: python exception


【解决方案1】:

原因的简短回答:Exception, eException, TypeError 很难区分。长答案:伊格纳西奥所说的。

【讨论】:

    【解决方案2】:

    此 PEP 引入的更改旨在帮助消除 Python 语法中的歧义、简化异常类、简化异常垃圾收集并减少 Python 3.0 中语言的大小。

    PEP 3110: "Catching Exceptions in Python 3000"

    【讨论】:

    • 但是我使用的是 2.6 并且我可以访问这两种样式。我的同事不得不通过代码更改为 except Exception, e 而不是 except Exception as e 因为(卡住)他使用的是旧版本。
    • 新语法向后移植到 2.6,但没有删除旧语法。
    【解决方案3】:

    第一个使用“as”的提议在这里:http://mail.python.org/pipermail/python-dev/2006-March/062449.html。 他们认为阅读代码会更直观

    【讨论】:

    • 这是一个很好的发现。从历史的角度来看它总是很好的!
    猜你喜欢
    • 2013-09-29
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 2021-10-06
    • 2017-03-09
    • 1970-01-01
    相关资源
    最近更新 更多