码迷,mamicode.com
首页 > 编程语言 > 详细

python异常处理

时间:2015-07-22 11:02:42      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:python   异常处理   

异常处理的目的是防止用户看到不友好的异常情况,避免程序异常退出


一.通过try...except...将异常截获,保证程序继续执行

try:
    open(‘test.txt‘,‘r‘)
    1/0
except ZeroDivisionError,e:
    print e
print ‘done‘

运行以上程序直接抛出异常如下,第2行之后的语句没有被执行,程序直接退出

>>> 


Traceback (most recent call last):

  File "D:\Python\code\test.py", line 2, in <module>

    open(‘test.txt‘,‘r‘)

IOError: [Errno 2] No such file or directory: ‘test.txt‘

>>> 


下面我们将try的两行语句互换位置再次运行

try:
    1/0
    open(‘test.txt‘,‘r‘)
except ZeroDivisionError,e:
    print e
print ‘done‘

>>> 

integer division or modulo by zero

done

>>> 

可以看出done被打印,异常情况被截获,保证了程序继续执行


二.finally子句:不管有无异常都执行,常用于文件关闭,释放数据库连接的操作

try:
    1/1
except ZeroDivisionError,e:
    print e
finally:
    print ‘done‘

>>> 

done

>>> 

程序没有异常依然打印出done


三.异常抛出raise子句:主动抛出异常给上一层,用于api错误提示处理,屏蔽底层异常等

try:
    1/0
except Exception,e:
    print str(e)
    raise Exception(‘test raise‘)

>>> 

integer division or modulo by zero


Traceback (most recent call last):

  File "D:\Python\code\test.py", line 5, in <module>

    raise Exception(‘test raise‘)

Exception: test raise

>>> 


本文出自 “今日的努力,明日的成功!” 博客,请务必保留此出处http://zhzhgo.blog.51cto.com/10497096/1676922

python异常处理

标签:python   异常处理   

原文地址:http://zhzhgo.blog.51cto.com/10497096/1676922

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!