当前位置:天才代写 > tutorial > Python教程 > python中的五种异常处理惩罚机制先容

python中的五种异常处理惩罚机制先容

2017-11-02 08:00 星期四 所属: Python教程 浏览:522

从几年前开始进修编程直到此刻,一直对措施中的异常处理惩罚怀有惊骇和排出心理。之所以这样,是因为不相识。这次攻python,首先把本身最害怕和最不熟悉的几块内容列出来,内里就有「异常处理惩罚」这一项。

《Dive into Python》并没有专门先容异常处理惩罚,只是例子顶用到的时候略微说明白一下。本日下载《Learn Python》,直接进异常处理惩罚这块。这一部门有四章,第一章讲授异常处理惩罚的一般利用要领,后头的章节深入地接头其机制。我今朝只看了第一章,先学会用,今后有须要的时候再扩展阅读。

python主要支持五种异常机制,一一罗列。

默认的异常处理惩罚器

代码如下:

s = 'Hello girl!'
print s[100]
print 'continue'

假如我们没有对异常举办任何防范,那么在措施执行的进程中产生异常,就会间断措施,挪用python默认的异常处理惩罚器,并在终端输出异常信息。这种环境下,第3行代码不会执行。

try…except

 代码如下:

s = 'Hello girl!'
try:
 print s[100]
except IndexError:
 print 'error...'
print 'continue'

措施执行到第2句时发明try语句,进入try语句块执行,产生异常,回到try语句层,寻找后头是否有except语句。找到except语句后,会挪用这个自界说的异常处理惩罚器。except将异常处理惩罚完毕后,措施继承往下执行。这种环境下,最后两个print语句城市执行。

except后头也可觉得空,暗示捕捉任何范例的异常。

try…finally

 代码如下:

s = 'Hello girl!'
try:
 print s[100]
finally:
 print 'error...'
print 'continue'

finally语句暗示,无论异常产生与否,finally中的语句都要执行。可是,由于没有except处理惩罚器,finally执行完毕后措施便间断。这种环境下,倒第2个print会执行,到第1个不会执行。假如try语句中没有异常,三个print城市执行。

assert

 代码如下:

assert False,'error...'
print 'continue'

这个语句,先判定assert后头紧跟的语句是True照旧False,假如是True则继承执行print,假如是False则间断措施,挪用默认的异常处理惩罚器,同时输出assert语句逗号后头的提示信息。本例环境下,措施间断,提示error,后头的print不执行。

with…as

 代码如下:

with open('nothing.txt','r') as f:
 f.read()
 print 2/0
print 'continue'

我们平时在利用雷同文件的流工具时,利用完毕后要挪用close要领封锁,很贫苦。这里with…as语句提供了一个很是利便的替代要领:open打开文件后将返回的文件流工具赋值给f,然后在with语句块中利用。with语句块完毕之后,会埋没地自动封锁文件。

假如with语句或语句块中产生异常,会挪用默认的异常处理惩罚器处理惩罚,但文件照旧会正常封锁。

这种环境下,会抛出异常,最后的print不执行。

 

    关键字:

天才代写-代写联系方式