异常,其实就是一个类的问题

上一篇讲过我们如何捕获异常,这一篇来探讨异常,发掘异常捕获不仅仅可以是异常捕获,还可以作为if语句一样进行决策!

异常的基类:BaseException
基类下的子类(三个):

  • SystemExit
    (当退出python系统时出现,sys.exit())
  • KeyboardInterrupt
    (当程序的执行受到键盘组合键打断时出现(ctrl+c))
  • Exception

其中Exception又有很多常见的异常子类,如:ValueError,TypeError等常见的

所以在平常捕获异常时如果不知道异常的名称,用:except Exception:

用异常代替if语句:
用if语句:

def divide_with_if(number, divisor):
    if divisor == 0:
        print("You can't divide by zero")
    else:
        print("{}/{}={}".format(number, divisor, number/divisor*1.0)

用异常捕获:

def divide_with_exception(number, divisor):
    try:
        print("{}/{}={}".format(number, divisor, number/divisor*1.0)
    except ZeroDivisionError:
        print("You can't divide by zero")

上面两个都可以在divisor为零时做出反应,但是,显然异常捕获更加好。至于为什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值