当前位置: 首页> 汽车> 车展 > 【30天玩转python】异常处理

【30天玩转python】异常处理

时间:2025/7/11 14:48:55来源:https://blog.csdn.net/weixin_39372311/article/details/142159143 浏览次数: 0次

异常处理

异常处理是 Python 编程中的重要概念之一,用于捕获和处理程序运行时可能出现的错误。通过合理的异常处理,程序可以避免因错误而中断,从而提升代码的健壮性和用户体验。本节将介绍异常的基本概念、常见的异常类型以及如何使用异常处理机制来编写健壮的 Python 程序。


1. 什么是异常

异常是程序运行时发生的错误,当 Python 解释器遇到异常时,会中断程序的执行,并显示错误信息。如果我们希望程序在出现异常时能够优雅地处理,就需要进行异常捕获和处理。

常见的异常类型包括:

  • ZeroDivisionError:除数为 0 时引发的异常。
  • FileNotFoundError:尝试访问不存在的文件时引发的异常。
  • IndexError:访问列表或元组中不存在的索引时引发的异常。
  • KeyError:访问字典中不存在的键时引发的异常。
  • TypeError:数据类型不匹配时引发的异常。

2. 使用 try-except 语句

可以使用 try-except 语句捕获异常,并防止程序因异常而崩溃。try 块中的代码会被尝试执行,如果引发异常,则跳转到对应的 except 块进行处理。

try:num = int(input("请输入一个整数: "))result = 10 / numprint(f"结果是: {result}")
except ZeroDivisionError:print("错误:除数不能为 0!")
except ValueError:print("错误:请输入有效的整数!")
2.1 捕获多个异常

在同一个 try 语句中,可以捕获多个不同类型的异常。每个 except 块对应不同的异常类型。

try:value = int(input("请输入一个整数: "))result = 10 / valueprint(f"结果是: {result}")
except (ZeroDivisionError, ValueError) as e:print(f"发生错误: {e}")

3. 使用 else 语句

如果 try 块中的代码没有引发异常,则会执行 else 块中的代码。

try:value = int(input("请输入一个整数: "))result = 10 / value
except ZeroDivisionError:print("错误:除数不能为 0!")
except ValueError:print("错误:请输入有效的整数!")
else:print(f"结果是: {result}")

4. 使用 finally 语句

finally 块中的代码无论是否引发异常,都会执行,通常用于释放资源,如关闭文件或网络连接。

try:file = open('example.txt', 'r')content = file.read()
except FileNotFoundError:print("错误:文件未找到!")
finally:file.close()print("文件已关闭")

5. 自定义异常

Python 允许我们自定义异常类,并在程序中引发自定义的异常。自定义异常类需要继承自 Exception 类。

class CustomError(Exception):"""自定义异常类"""def __init__(self, message):self.message = message# 在程序中引发自定义异常
def check_value(value):if value < 0:raise CustomError("值不能为负数!")else:print(f"输入值是: {value}")try:check_value(-5)
except CustomError as e:print(f"捕获到自定义异常: {e.message}")

6. raise 关键字

raise 关键字可以显式地引发异常,无论是内置异常还是自定义异常。

def divide(a, b):if b == 0:raise ZeroDivisionError("除数不能为 0!")return a / btry:result = divide(10, 0)
except ZeroDivisionError as e:print(f"捕获到异常: {e}")

7. assert 语句

assert 语句用于在程序中插入调试断言。它检查一个条件,如果条件为 False,则引发 AssertionError 异常。

def calculate_square_root(x):assert x >= 0, "输入必须是非负数"return x ** 0.5print(calculate_square_root(25))  # 正常输出:5.0
print(calculate_square_root(-4))  # 引发 AssertionError

8. 小结

异常处理是编写健壮 Python 程序的重要工具。通过合理使用 try-except 语句,我们可以有效捕获并处理程序运行中的错误,避免程序崩溃。同时,使用 finally 语句保证资源的释放,通过 assert 和自定义异常提升代码的可维护性。掌握异常处理技巧能够帮助我们编写更稳定、可靠的代码。

关键字:【30天玩转python】异常处理

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: