Python通过try-except-finally实现异常处理,可捕获特定错误并执行相应逻辑,else在无异常时运行,finally始终执行用于资源清理;通过继承Exception类可创建自定义异常,提升业务错误的清晰度与处理精度。

Python处理异常的核心机制是
try-except
说实话,写代码哪有不犯错的?运行时错误(或者说异常)是家常便饭。Python的异常处理机制,我觉得吧,就是为了让我们的程序在面对这些“意料之外”时,能有点“情商”,不至于直接甩脸子(崩溃)。
最基础的当然是
try-except
try
except
try:
result = 10 / 0 # 这肯定会出ZeroDivisionError
except ZeroDivisionError:
print("噢,除零了!数学老师会生气的。")
except TypeError: # 也可以捕获其他类型的错误
print("类型错了,检查一下你的变量。")
except Exception as e: # 捕获所有其他异常,并把异常对象存到变量e里
print(f"发生了未知错误:{e}")
else:
print("一切顺利,没有异常发生!") # 如果try块里没抛异常,就执行这里
finally:
print("不管发生啥,我都会执行,比如清理资源。") # 无论如何都会执行这里面有几个点挺有意思的:
立即学习“Python免费学习笔记(深入)”;
ZeroDivisionError
except (ValueError, TypeError):
except Exception as e
else
try
finally
try
return
finally
有时候,你捕获了一个异常,处理完之后,可能还想让它继续向上层抛出,让调用者也知道发生了什么。这时候可以用
raise
def process_data(data):
try:
if not isinstance(data, list):
raise TypeError("数据必须是列表类型!")
# 模拟一些处理
return sum(data) / len(data)
except TypeError as e:
print(f"处理数据时发生类型错误:{e}")
raise # 重新抛出异常,让调用者也能捕获到
try:
process_data("hello")
except TypeError as e:
print(f"外部捕获到异常:{e}")这种
raise
我们内置的异常类型已经不少了,像
ValueError
TypeError
举个例子,你开发一个电商系统,用户尝试购买一个库存不足的商品。这在Python看来,可能不是一个
IndexError
KeyError
ValueError
ValueError
所以,自定义异常的价值就体现出来了:
InsufficientStockError
ValueError("库存不足")创建自定义异常其实非常简单,就是定义一个继承自
Exception
ValueError
以上就是如何处理Python中的异常?自定义异常如何实现?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号