Python学习笔记13—错误和异常

常见的异常:

 

处理单个异常

#!/usr/bin/env Python
# coding=utf-8
class Calculator(object):
    is_raise = False
    def calc(self, express):
        try:
            return eval(express)
        except ZeroDivisionError:
            if self.is_raise:
                print "zero can not be division."
            else:
                raise                #作为单独一个语句。它的含义是将异常信息抛出
if __name__ == "__main__":
    c = Calculator()
    c.is_raise = True
    print c.calc("8/0")

运行结果:

 

处理多个异常

#!/usr/bin/env Python
# coding=utf-8
while 1:
    print "this is a division program."
    c = raw_input("input 'c' continue, otherwise logout:")
    if c == 'c':
        a = raw_input("first number:")
        b = raw_input("second number:")
        try:
            print float(a)/float(b)
            print "*************************"
        except ZeroDivisionError:
            print "The second number can't be zero!"
            print "*************************"
        except ValueError:
            print "please input number."
            print "************************"
    else:
        break

可以加一个else语句

#!/usr/bin/env Python
# coding=utf-8
while 1:
    try:
        x = raw_input("the first number:")
        y = raw_input("the second number:")
        r = float(x)/float(y)
        print r
    except Exception, e:
        print e
        print "try again."
    else:
        break

这样执行如果没有异常就退出

也可以在最后添加一个finally语句,综合起来异常表达式:

try:
    do something
except:
    do something
else:
    do something
finally
    do something

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值