Python的异常与工具包

文章介绍了Python中的异常处理机制,包括try-except语句用于捕获并处理程序运行时可能出现的错误,异常的传递性,以及finally块用于确保某些代码无论如何都会执行,如资源清理。通过示例展示了如何捕获特定异常、多个异常以及所有异常,并解释了异常未被捕获时的传递过程。
摘要由CSDN通过智能技术生成

异常

当检测到一个错误时,python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的异常

捕获异常

世界上没有完美的程序,任何程序在运行的过程中,都有可能出现异常,导致程序无法完美运行下去。

我们要做的,不是力求程序完美运行,而是在力所能及的方位内,对可能出现的bug,进行提前准备、提前处理。

这种行为我们称之为:异常处理(捕获异常)

捕获异常的作用在于:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段。

基本语法

try:

​ 可能发生错误的代码

except:

​ 如果出现异常执行的代码

捕获指定异常

try:

​ 可能发生错误的代码

except 异常的名字 as e:

​ 如果出现异常执行的代码

注意事项:

  • 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
  • 一般 try 下方只放一行尝试执行的代码。

捕获多个异常

try:

​ 可能发生错误的代码

except (异常1,异常2) as e:

​ 如果出现异常执行的代码

捕获所有异常

try:

​ 可能发生错误的代码

except Exception as e:

​ 如果出现异常执行的代码

异常else

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

语法

try:

​ 可能发生错误的代码

except Exception as e:

​ 如果出现异常执行的代码

else:

​ 没有出现异常执行的代码

finally

finally 表示的是无论是否异常都要执行的代码,例如关闭文件。

语法

try:

​ 可能发生错误的代码

except Exception as e:

​ 如果出现异常执行的代码

else:

​ 没有出现异常执行的代码

finally:

最终要执行的代码(一般用于关闭各种)

异常的传递

异常是具有传递性的。

当函数1中发生异常,并且没有捕获处理这个异常的时候,异常会传递到函数2,当函数2也没有捕获处理这个异常的时候,main函数就会捕获这个异常,这就是异常的传递性。

当所有函数都没有捕获异常的时候,程序就会报错。

# 定义一个出现异常的方法
def func1():
    print("func1 开始执行")
    num = 1 / 0
    print("func1 执行结束")

# 定义一个无异常的方法,调用上面的方法
def func2():
    print("func2 开始执行")
    func1()
    print("func2 执行结束")

# 定义一个方法,调用上面的方法
def main():
    try:
        func2()
    except Exception as e:
        print(f"出现异常了,异常的信息是:{e}")

main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值