python编程实例 异常处理

发布时间:2019-12-28编辑:脚本学堂
本文介绍了python编程中异常处理的方法,python编程实例之异常处理教程,感兴趣的朋友参考下。

在编写程序时可能会出现一些异常,比如类型错误,除零错误等,为了能捕获并处理这些异常,可以使用python的异常处理功能。
python使用raise语句可以抛出异常,对于可能出现异常的语句块,用try语句包围起来,并用except捕捉,就可以实现异常处理了,比如:
 

复制代码 代码示例:
x=input("first number:") 
y=input("second number:") 
try: 
    print x/y 
except ZeroDivisionError: 
    print "error" 
 

y为零时会引发异常。

如果要捕捉两个或者更多的异常,except后面加上括号即可,如上面的except语句可以改为except (ZeroDivisionError,TypeError),这样可以捕获除零和类型异常。如果想记录异常信息,可以这样写:except ZeroDivisionError,e:接下来就可以处理异常信息,比如打印等。
空的except语句可以捕获所有的异常。在except语句后面还可以加上else语句,用于处理没有异常发生的情况,比如:
 

复制代码 代码示例:
while 1: 
x=input("first number:") 
y=input("second number:") 
try: 
    print x/y 
except ZeroDivisionError: 
    print "error" 
else: 
    break 
 

上面的程序中,如果遇到除数为零的情况程序会循环,不为零时,程序会执行到break语句从而跳出循环。

finally语句也非常有用,它位于异常处理的后面,它内部的代码一定会被执行,它可以用于清理异常。
 

复制代码 代码示例:
#!/usr/bin/env python 
x=input("first number:") 
y=input("second number:") 
try: 
    print x/y 
except ZeroDivisionError: 
    print "error" 
finally: 
    sys.exit(1) 

当然,也可以自定义异常类,例如:
 

复制代码 代码示例:
#!/usr/bin/env python 
class myError(Exception): 
    def __init__(self,value): 
        self.value=value;        
try: 
    raise myError(2) 
except myError,e: 
    print "exception's value is",e.value