Python 异常 捕捉异常

说到异常,一个全的case是包含try except eles finally
我们可以这么理解
try后面是执行正常的东西
except是捕捉的异常,可以有多个except来捕捉异常
eles是如果没有异常会执行的东西
finally是无论如何都会执行的东西
这里就不一个个举例子了,记住这些要点就行了

except

如下,可以用来捕获多个异常

try:
    print('-----test--1---')
    open('123.txt','r')
    print('-----test--2---')
except (FileNotFoundError,NameError) as e:
    print("产生错误了")
    print("错误的异常为:",e)
    pass

如果要捕获所有的异常

try:
    print('-----test--1---')
    open('123.txt','r')
    print('-----test--2---')
except Exception as e:
    print("产生错误了")
    print("错误的异常为:",e)
    pass
  • 当然,except后面还可以什么都不加
try:
    print('-----test--1---')
    open('123.txt','r')
    print('-----test--2---')
except Exception:
    print("产生错误了")

raise

raise可以直接让函数发生崩溃,我们看下面的一个例子。

class Test(object):
    def __init__(self, switch):
        self.switch = switch #开关
    def calc(self, a, b):
        try:
            return a/b
        except Exception as result:
            if self.switch:
                print("捕获开启,已经捕获到了异常,信息如下:")
                print(result)
            else:
                #重新抛出这个异常,此时就不会被这个异常处理给捕获到,从而触发默认的异常处理
                raise


a = Test(True)
a.calc(11,0)

print("----------------------华丽的分割线----------------")

a.switch = False
a.calc(11,0)

结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值