Python异常处理 分类: python Raspberry Pi 服务器搭建 2015-04-01 13:22 172人阅读 评论(0) 收藏

一个程序要保持稳定运行必须要有异常处理,本文将简单介绍Python中的try…except..异常处理语句的使用。

该种异常处理语法的规则是:

  • 执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句。
  • 如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。
  • 如果引发的异常不匹配第一个except,则会搜索第二个except,允许编写的except数量没有限制。
  • 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。
  • 如果没有发生异常,则执行else块代码(else可有可无)。
  • 如果最后有finally语句,论异常是否发生,finally子句都会被执行。

演示try…except语句捕获IOError异常

try:
file("hello.txt", "r") #如果文件不存在,引发异常
print "读文件"
except IOError: #捕获IO异常
print "文件不存在"
except: #其它异常
print "程序异常"

try…finally的使用方法

try…except后还可以添加一个finally子句。无论异常是否发生,finally子句都会被执行。所有的finally子句通常用于关闭因异常而不能释放的系统资源。

try:
f = open("hello.txt", "r")
try:
print f.read(5)
except:
print "读文件异常"
finally:
print "释放资源"
f.close()
except IOError:
print "文件不存在"

使用raise抛出异常

当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。

try:
s = None
if s is None:
print "s 是空对象"
raise NameError #如果引发NameError异常,后面的代码将不能执行
print len(s)
except TypeError:
print "空对象没有长度"

python异常处理还有很多内容,欢迎补充提出。

版权声明:本文为博主原创文章,未经博主允许不得转载。

上一篇:Redis_redis分布式锁-SETNX


下一篇:ectouch第五讲 之表