python的异常
python中的异常是指程序中的例外,违例,影响程序正常执行的情况。
异常机制是指程序出现错误后,程序的处理方法。
当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。
如果程序执行过程中发生了异常,我们没有进行异常处理,那么程序就会中止执行下面的代码。但是如果我们进行了异常处理,程序会继续执行下面的代码。
异常的例子:
NameError:尝试访问一个未申明的变量
>>>foo
Traceback(innermostlast):File"",line1,in?
NameError:name'foo'isnotdefined
NameError表示我们访问了一个没有初始化的变量.在Python解释器的符号表没有找到那个另人讨厌的变量.我们将在后面的两章讨论名称空间,现在大家可以认为它们是连接名字和对象的"地址簿"就可以了.任何可访问的变量必须在名称空间里列出.访问变量需要由解释器进行搜索,如果请求的名字没有在任何名称空间里找到,那么将会生成一个NameError异常.
ZeroDivisionError:除数为零
>>>1/0
Traceback(innermostlast):File"",line1,in?
ZeroDivisionError:integerdivisionormodulobyzero
我们边的例子使用的是整数,但事实上,任何数值被零除都会导致一个ZeroDivisionError
异常.
SyntaxError:Python解释器语法错误
>>>for
File"",line1EditByVheavens
for
^
SyntaxError:invalidsyntax
SyntaxError异常是唯一不是在运行时发生的异常.它代表Python代码中有一个不正确的结构,在它改正之前程序无法执行.这些错误一般都是在编译时发生,Python解释器无法把你的脚本转化为Python字节代码.当然这也可能是你导入一个有缺陷的模块的时候.
IndexError:请求的索引超出序列范围
>>>aList=[]
>>>aList[0]
Traceback(innermostlast):File"",line1,in?
IndexError:listindexoutofrange
IndexError在你尝试使用一个超出范围的值索引序列时引发.
KeyError:请求一个不存在的字典关键字
>>>aDict={'host':'earth','port':80}
>>>printaDict['server']Traceback(innermostlast):
File"",line1,in?KeyError:server
映射对象,例如字典,是依靠关键字(keys)访问数据值的.如果使用错误的或是不存在的键请求字典就会引发一个KeyError异常.
IOError:输入/输出错误
>>>f=open("blah")Traceback(innermostlast):
File"",line1,in?
IOError:[Errno2]Nosuchfileordirectory:'blah'
类似尝试打开一个不存在的磁盘文件一类的操作会引发一个操作系统输入/输出(I/O)错误.任何类型的I/O错误都会引发IOError异常.
AttributeError:尝试访问未知的对象属性
>>>classmyClass(object):
...pass
...
>>>myInst=myClass()
>>>myInst.bar='spam'
>>>myInst.bar
'spam'
>>>myInst.foo
Traceback(innermostlast):File"",line1,in?
AttributeError:foo
以上内容为大家介绍了python的异常,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/
相关推荐HOT
更多>>python类对象和实例对象是一样的吗
python面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“...详情>>
2023-11-06 22:21:27python pyc 文件
一个pyc文件包含了三部分信息:Python的magicnumber、pyc文件创建的时间信息,以及PyCodeObject对象。magicnumber是Python定义的一个整数值。一...详情>>
2023-11-06 16:10:10python的keras训练
Keras模型在输入数据和标签的Numpy矩阵上进行训练。为了训练一个模型,你通常会使用fit函数。文档详见此处。fit(self,x,y,batch_size=32,epochs...详情>>
2023-11-06 15:46:04python装饰器的概念
装饰器一直是我们学习python难以理解并且纠结的问题,想要弄明白装饰器,必须理解一下函数式编程概念,并且对python中函数调用语法中的特性有所...详情>>
2023-11-06 12:05:19