Python异常

什么是异常?

异常就是我们因为一些原因而引发的程序错误,也就是我们常说的BUG

例:

 捕获异常(异常处理)

我们在程序运行中时,经常会出现异常,因此我们需要对有可能出现的异常进行提前准备,提前处理,在经过异常处理后,我们的程序还能继续运行

语法:

try:

    可能出现错误的代码

except:

    出现错误后执行的代码

try:

    #没有aaa.txt文件
    #发生错误的代码
    f = open("aaa.txt","r",encoding = "UTF-8")

except:

    #错误出现时运行的代码
    f = open("aaa.txt", "w")

捕获指定异常

语法:

try:

    可能出现错误的代码

except 指定错误 as e:

    出现错误后执行的代码

try:
    f = open("aaaa.txt","r",encoding = "UTF-8")
except FileNotFoundError as e:
    f = open("aaaa.txt", "w")

注意:如果出现的错误类型与指定错误类型不同时将不会捕捉异常

一般try下只放一行尝试执行的代码

捕捉多个异常

try:

    可能出现错误的代码

except (NameError,FileNotFoundError):

    出现错误后执行的代码

try:
    f = open("aaaa.txt","r",encoding = "UTF-8")
except (FileNotFoundError,NameError):
    f = open("aaaa.txt", "w")

捕获所有的异常

语法:

try:

    可能出现错误的代码

except Exception as e:

    出现错误后执行的代码

try:
    f = open("aaaa.txt","r",encoding = "UTF-8")
except Exception as e:
    f = open("aaaa.txt", "w")

异常else

else表示的没有异常时要执行的代码

语法:

try:

    可能出现错误的代码

except Exception as e:

    出现错误后执行的代码

else:

    没有异常时执行的代码

try:
    f = open("aaaa.txt","r",encoding = "UTF-8")
except Exception as e:
    f = open("aaaa.txt", "w")
else:
    print("现在没有异常")

现在没有异常

异常finally

finally表示的是否异常都要执行的代码

try:

    可能出现错误的代码

except Exception as e:

    出现错误后执行的代码

else:

    没有异常时执行的代码

finally:

    最后一定执行的代码

try:
    f = open("aaaa.txt","r",encoding = "UTF-8")
except Exception as e:
    f = open("aaaa.txt", "w")
else:
    print("现在没有异常")
finally:
    f.close()

异常的传递性

异常具有传递性

例:

def demo1():
    print("demo1 start")
    num = 1/0
    print("demo1 end")

def demo2():
    print("demo2 start")
    demo1()
    print("demo2 end")

def demo3():
    print("demo3 start")
    demo2()
    print("demo3 end")

def test():
    try:
        demo3()
    except Exception as e:
        print("异常为:"+str(e))

test()

demo3 start
demo2 start
demo1 start
异常为:division by zero

当我们想要捕获异常时,并不需要找到出现异常的那句话,因为函数之间的调用关系会导致异常传递

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值