知行编程网知行编程网  2022-11-03 23:30 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python新手常见问题三:在异常处理时错误的使用参数的相关知识,希望可以帮到处于编程学习途中的小伙伴

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


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

假设你有如下的代码:

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

这里的问题是except语句不接受这样的一系列异常。并且,在 Python 2.x 中,除了 Exception, e 的语法用于将异常绑定到这个可选参数(也就是这里的 e),以供以后查看。因此,在上面的代码中,IndexError异常不会被except语句捕获;最后将 ValueError 异常绑定到一个名为 IndexError 的参数。

在 except 语句中捕获多个异常的正确方法是将要捕获的所有异常放在一个元组中,并将其作为 except 语句的第一个参数。并且,为了可移植性,使用 as 关键字,因为 Python 2 和 Python 3 都支持这样的语法,例如:

>>> try:
...     l = ["a", "b"]
...     int(l[2])
... except (ValueError, IndexError) as e:  
...     pass
...
>>>

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享