python的异常

发布时间:2022-02-18 09:36:23 人气:77 作者:多测师

  python中的异常是指程序中的例外,违例,影响程序正常执行的情况。

  异常机制是指程序出现错误后,程序的处理方法。

  当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。

  如果程序执行过程中发生了异常,我们没有进行异常处理,那么程序就会中止执行下面的代码。但是如果我们进行了异常处理,程序会继续执行下面的代码。

  异常的例子:

  NameError:尝试访问一个未申明的变量

  >>> foo

  Traceback (innermost last): File "", line 1, in ?

  NameError: name 'foo' is not defined

  NameError表示我们访问了一个没有初始化的变量.在Python解释器的符号表没有找到那个另人讨厌的变量.我们将在后面的两章讨论名称空间,现在大家可以认为它们是连接名字和对象的"地址簿"就可以了.任何可访问的变量必须在名称空间里列出.访问变量需要由解释器进行搜索,如果请求的名字没有在任何名称空间里找到,那么将会生成一个NameError异常.

  ZeroDivisionError:除数为零

  >>> 1/0

  Traceback (innermost last): File "", line 1, in ?

  ZeroDivisionError: integer division or modulo by zero

python的异常

  我们边的例子使用的是整数,但事实上,任何数值被零除都会导致一个ZeroDivisionError

  异常.

  SyntaxError: Python解释器语法错误

  >>> for

  File "", line 1Edit By Vheavens

  for

  ^

  SyntaxError: invalid syntax

  SyntaxError异常是唯一不是在运行时发生的异常.它代表Python代码中有一个不正确的结构,在它改正之前程序无法执行.这些错误一般都是在编译时发生, Python解释器无法把你的脚本转化为Python字节代码.当然这也可能是你导入一个有缺陷的模块的时候.

  IndexError:请求的索引超出序列范围

  >>> aList = []

  >>> aList[0]

  Traceback (innermost last): File "", line 1, in ?

  IndexError: list index out of range

  IndexError在你尝试使用一个超出范围的值索引序列时引发.

  KeyError:请求一个不存在的字典关键字

  >>> aDict = {'host': 'earth', 'port': 80}

  >>> print aDict['server'] Traceback (innermost last):

  File "", line 1, in ? KeyError: server

  映射对象,例如字典,是依靠关键字(keys)访问数据值的.如果使用错误的或是不存在的键请求字典就会引发一个KeyError异常.

  IOError:输入/输出错误

  >>> f = open("blah") Traceback (innermost last):

  File "", line 1, in ?

  IOError: [Errno 2] No such file or directory: 'blah'

  类似尝试打开一个不存在的磁盘文件一类的操作会引发一个操作系统输入/输出(I/O)错误.任何类型的I/O错误都会引发IOError异常.

  AttributeError:尝试访问未知的对象属性

  >>> class myClass(object):

  ... pass

  ...

  >>> myInst = myClass()

  >>> myInst.bar = 'spam'

  >>> myInst.bar

  'spam'

  >>> myInst.foo

  Traceback (innermost last): File "", line 1, in ?

  AttributeError: foo

  以上内容为大家介绍了python的异常,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/

上一篇:Python 之IDE
下一篇:Python自动化学习思路
返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线