返回

Python新手常见问题三:在异常处理时错误的使用参数

发布时间:2023-02-07 17:03:22 253

Python新手常见问题三:在异常处理时错误的使用参数_参数绑定

在异常处理时错误的使用参数

假设你有如下的代码:

>>> try:
... l = ["a", "b"]
... int(l[2])
... except ValueError, IndexError:
# 想捕捉两个异常
... pass
...
Traceback (most recent call last):
File "", line 3, in
IndexError: list index out of range

这里的问题在于except语句不会像这样去接受一系列的异常。并且,在Python 2.x里面,语法except Exception, e是用来将异常和这个可选的参数绑定起来(即这里的e),以用来在后面查看的。因此,在上面的代码中,IndexError异常不会被except语句捕捉到;而最终ValueError这个异常被绑定在了一个叫做IndexError的参数上。

在except语句中捕捉多个异常的正确做法是将所有想要捕捉的异常放在一个元组(tuple)里并作为第一个参数给except语句。并且,为移植性考虑,使用as关键字,因为Python 2和Python 3都支持这样的语法,例如:

>>> try:
... l = ["a", "b"]
... int(l[2])
... except (ValueError, IndexError) as e:
... pass
...
>>>
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线