【Python】复习6:异常处理


异常处理

  • try-except语句:捕获和处理程序运行时可能出现的错误或异常。
  • finally语句:无论是否发生异常,都会执行的代码块

在Python中,异常处理是一种强大的错误处理机制,它允许程序在运行时检测到错误或异常情况,并决定如何响应这些状况。通过使用tryexceptfinally语句块,你可以控制程序在发生异常时的行为。

try/except 语句块

try语句块中包含了可能会引发异常的代码。如果try块中的代码没有引发异常,那么程序会继续执行。如果try块中的代码引发了异常,Python会立即停止执行当前try块中的剩余代码,并跳转到相应的except块中执行。

下面是一个简单的try/except示例:

try:
    # 尝试执行可能会引发异常的代码
    x = 1 / 0
except ZeroDivisionError:
    # 如果发生ZeroDivisionError异常,则执行这里的代码
    print("不能除以零!")

你可以使用多个except子句来处理不同类型的异常:

try:
    # 尝试执行可能会引发异常的代码
    x = int('not a number')
except ValueError as e:
    # 如果发生ValueError异常,则执行这里的代码
    print(f"值错误: {e}")
except ZeroDivisionError as e:
    # 如果发生ZeroDivisionError异常,则执行这里的代码
    print(f"除以零错误: {e}")
except Exception as e:
    # 捕获所有其他类型的异常
    print(f"发生了一个未知异常: {e}")

在这个例子中,ValueError异常会首先被捕获,因为它在except子句的列表中更具体。如果try块中的代码引发了ZeroDivisionError异常,那么相应的except子句会被执行。如果发生了其他类型的异常,那么最后一个except子句(使用Exception作为基类)将会捕获它。

finally 语句块

finally语句块无论是否发生异常都会被执行。它通常用于执行一些清理操作,比如关闭文件、释放资源等。

try:
    # 尝试执行可能会引发异常的代码
    f = open('somefile.txt', 'r')
    content = f.read()
    x = 1 / 0
except ZeroDivisionError:
    print("不能除以零!")
finally:
    # 无论是否发生异常,都会执行这里的代码
    if 'f' in locals() and not f.closed:
        f.close()
    print("执行清理操作...")

在这个例子中,无论try块中的代码是否成功执行,finally块都会执行,确保文件被正确关闭。

else 语句块

else语句块是可选的,它会在try块成功执行(即没有引发任何异常)后执行。

try:
    # 尝试执行一些不会引发异常的代码
    result = 10 / 2
except ZeroDivisionError:
    print("不能除以零!")
else:
    # 如果try块成功执行,则执行这里的代码
    print("计算结果为:", result)

综合使用

你可以将try/except/else/finally结合起来使用,以便更全面地控制异常处理流程:

try:
    # 尝试执行可能会引发异常的代码
    result = 10 / int(input("请输入一个数字:"))
except ValueError:
    print("输入的不是一个有效的数字!")
except ZeroDivisionError:
    print("不能除以零!")
else:
    # 如果try块成功执行,则执行这里的代码
    print("计算结果为:", result)
finally:
    # 无论是否发生异常,都会执行这里的代码
    print("程序结束")

通过合理使用异常处理机制,你可以确保你的Python程序在遭遇错误时能够优雅地处理它们,而不是简单地崩溃。

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【完整课程列表】 完整图文版教程 优质的Python基础入门教程 02、程序的灵魂-算法 (共11页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python布尔类型复习4 (共9页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python基本语法1 (共32页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python基本语法2 (共17页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python基本语法3 (共22页).pptx 完整图文版教程 优质的Python基础入门教程 04、Python控制语句-条件语句 (共39页).pptx 完整图文版教程 优质的Python基础入门教程 05、Python控制语句-循环语句1 (共27页).pptx 完整图文版教程 优质的Python基础入门教程 05、Python控制语句-循环语句2 (共21页).pptx 完整图文版教程 优质的Python基础入门教程 06、Python内置数据结构1 (共29页).pptx 完整图文版教程 优质的Python基础入门教程 06、Python内置数据结构2 (共50页).pptx 完整图文版教程 优质的Python基础入门教程 07、Python文件操作 (共19页).pptx 完整图文版教程 优质的Python基础入门教程 08、Python内置数据结构练习 (共18页).pptx 完整图文版教程 优质的Python基础入门教程 09、Python函数 (共96页).pptx 完整图文版教程 优质的Python基础入门教程 10、Python函数练习 (共64页).pptx 完整图文版教程 优质的Python基础入门教程 11、Python函数总结 (共36页).pptx 完整图文版教程 优质的Python基础入门教程 12、Python模块 (共55页).pptx 完整图文版教程 优质的Python基础入门教程 14、Python面向对象编程 (共64页).pptx 完整图文版教程 优质的Python基础入门教程 15、Python异常处理 (共30页).pptx
【完整课程列表】 完整图文版教程 优质的Python基础入门教程 02、程序的灵魂-算法 (共11页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python布尔类型复习4 (共9页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python基本语法1 (共32页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python基本语法2 (共17页).pptx 完整图文版教程 优质的Python基础入门教程 03、Python基本语法3 (共22页).pptx 完整图文版教程 优质的Python基础入门教程 04、Python控制语句-条件语句 (共39页).pptx 完整图文版教程 优质的Python基础入门教程 05、Python控制语句-循环语句1 (共27页).pptx 完整图文版教程 优质的Python基础入门教程 05、Python控制语句-循环语句2 (共21页).pptx 完整图文版教程 优质的Python基础入门教程 06、Python内置数据结构1 (共29页).pptx 完整图文版教程 优质的Python基础入门教程 06、Python内置数据结构2 (共50页).pptx 完整图文版教程 优质的Python基础入门教程 07、Python文件操作 (共19页).pptx 完整图文版教程 优质的Python基础入门教程 08、Python内置数据结构练习 (共18页).pptx 完整图文版教程 优质的Python基础入门教程 09、Python函数 (共96页).pptx 完整图文版教程 优质的Python基础入门教程 10、Python函数练习 (共64页).pptx 完整图文版教程 优质的Python基础入门教程 11、Python函数总结 (共36页).pptx 完整图文版教程 优质的Python基础入门教程 12、Python模块 (共55页).pptx 完整图文版教程 优质的Python基础入门教程 14、Python面向对象编程 (共64页).pptx 完整图文版教程 优质的Python基础入门教程 15、Python异常处理 (共30页).pptx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值