您的位置:首页 > 编程语言 > Python开发

Python3.3 学习笔记5 - 异常处理

2012-12-13 17:37 651 查看
与python异常相关的关键字

raise:手动抛出/引发异常:raise [exception[,data]]

try/except:捕获异常并处理

pass:忽略异常

as:定义异常实例(except IOError as e)

finally:无论是否出现异常,都执行的代码

else:如果try中的语句没有引发异常,则执行else中的语句

except Exception as error:

python中的异常类型

StandardError类:如果程序上出现逻辑错误, 将引发该异常。StandardError类是所有内敛异常的基类,放置在默认的命名空间中,因此使用IOEroor, EOFError, ImportError等类,不需要导入exception模块。

StopIteration类:判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。

GeneratorExit类:是由Generator函数引发的异常,当调用close()时引发该异常。

Warning类:表示程序中的代码引起的警告。

try ... expect

try:

block

except [exception1(,exception2...),[data…]]:

block

(else: block)

例1:

try:

1/0

except ZeroDivisionError as errorinfor:

print(errorinfor) #输出详细错误信息:integer division or modulo by zero

例2:

try:

  print "Testing begins!"

raise MyError #自己抛出一个异常,后面代码不执行.

except MyError:

print 'This a defined error!'

except:

  print "Other error!"

try ... finally

finally 里面只是执行完成try中的代码后,必须执行的代码, 即使是 try中有异常抛出,也是会去执行finally

所以,一般情况下,finally里面执行的都是一些清理工作,比如:关闭文件描述符,释放锁等

注意,finally中,如果出现异常,外部如果没有相应的捕获机制,该异常会层层抛出,直到最顶端,然后解释器停止。一般在外层再加一次try except异常捕获

参考文档

traceback 和 sys模块: /article/4868178.html

Python中的异常类型:http://blog.csdn.net/fcoolx/article/details/4202872

Python中的异常:http://www.pythonpub.com/python-except.html

Python异常继承树:http://www.cnblogs.com/rollenholt/archive/2011/11/25/2263724.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: