• 技术文章 >Python技术 >Python基础教程

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

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-06-28 09:28:47原创2877

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

    假设你有如下的代码:

    >>> 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里面,语法except Exception, e是用来将异常和这个可选的参数绑定起来(即这里的e),以用来在后面查看的。因此,在上面的代码中,IndexError异常不会被except语句捕捉到;而最终ValueError这个异常被绑定在了一个叫做IndexError的参数上。

    相关推荐:《Python视频教程

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

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

    相关推荐:

    Python新手常见问题二:不正确的使用类变量

    专题推荐:python 新手 问题
    上一篇:Python新手常见问题二:不正确的使用类变量 下一篇:Python新手常见问题四:误用Python作用域的规则

    相关文章推荐

    • Python中的二叉排序树和平衡二叉树是什么• python新手常见问题一:乱用表达式• Python新手常见问题二:不正确的使用类变量

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网