【Python进阶】<处理异常>是学习Python必备的技能,学会这四个方法就足够了!!!

前言

在Python中,处理异常是一个非常重要的编程技巧,它使得程序在面对错误时能够优雅地恢复或至少提供清晰的错误信息,而不是突然崩溃。Python提供了几种不同的机制来处理异常,包括try...except语句、raise语句来主动抛出异常、finally块来执行清理代码,以及使用with语句管理资源。

1. 使用try...except语句

try...except语句用于捕获并处理可能发生的异常。

示例代码

try:  
    # 尝试执行的代码  
    num = 10  
    result = 100 / num  
    print(result)  
    # 故意制造一个除以零的异常  
    result = 100 / 0  
except ZeroDivisionError:  
    # 处理除以零的异常  
    print("Cannot divide by zero!")  
except Exception as e:  
    # 处理其他所有类型的异常  
    print(f"An error occurred: {e}")

分析

  • 尝试执行的代码块被try包裹。
  • 如果在执行过程中发生了ZeroDivisionError异常,则执行对应的except块中的代码。
  • 如果发生的是其他类型的异常,则执行捕获所有异常的except块中的代码。
  • 使用as e可以捕获异常对象,并通过e访问异常的详细信息。

2. 使用raise语句抛出异常

raise语句用于手动触发一个异常。

示例代码

def divide(x, y):  
    if y == 0:  
        raise ValueError("Cannot divide by zero!")  
    return x / y  
  
try:  
    result = divide(10, 0)  
except ValueError as e:  
    print(e)

分析

  • divide函数中,如果y为0,则使用raise语句抛出一个ValueError异常。
  • 调用divide函数时,使用try...except语句捕获并处理这个异常。

3. 使用finally块执行清理代码

finally块用于执行清理代码,无论是否发生异常都会执行。

示例代码

try:  
    f = open("test.txt", "r")  
    # 假设这里发生了一些异常  
    1 / 0  
except ZeroDivisionError:  
    print("Error occurred!")  
finally:  
    f.close()  
    print("File closed.")

 注意: 在上面的例子中,f.close()会执行,但由于在尝试打开文件之前就已经抛出了异常,f可能并未成功打开,这将导致f.close()引发另一个异常(如果f未被成功赋值)。实际中,应该使用with语句来管理文件或其他资源。

4. 使用with语句管理资源

with语句可以自动管理资源,如文件、线程锁的获取和释放等,它通过上下文管理器实现。

示例代码

with open("test.txt", "r") as f:  
    content = f.read()  
    print(content)  
# 文件自动关闭,无需显式调用f.close()

分析

  • 使用with语句打开文件,并在代码块执行完毕后自动关闭文件。
  • 这使得代码更加简洁且不易出错,因为无需显式调用close()方法。

以上就是我总结的处理异常的方法,需要的朋友可以借鉴。

最后,如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

 

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要找到我免费领取【保证100%免费】 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值