掘金 人工智能 07月15日 12:08
苦练Python第19天:断言与自定义异常
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了Python中的断言和自定义异常,包括assert的用法和适用场景,raise触发内建/自定义异常的方法,以及实战案例。文章还对比了断言和抛异常的区别,并提供了最佳实践和注意事项,帮助读者更好地理解和应用异常处理。

📦 assert是调试神器,用于开发期内部调试,条件为True无事发生,为False立即抛出AssertionError并终止程序。语法为assert条件, '可选的异常信息'。

🔥 raise用于主动抛出异常,当条件不满足时,让调用方处理。可以抛出内建异常,如ValueError,也可以自定义异常,继承Exception类,使异常语义更清晰。

🛠️ 自定义异常继承Exception类,通过定义类和触发方式,让业务逻辑更清晰。例如,定义TooYoungError和InsufficientFundsError类,分别表示年龄不足和余额不足的异常。

🚀 断言和抛异常的对比:assert主要用于内部调试,生产环境可被忽略;raise用于用户可见或预期异常,始终生效。assert异常类型固定为AssertionError,只能附带字符串信息;raise可以附带任意数据。

苦练Python第19天:断言与自定义异常

原文链接:dev.to/therahul_gu…
作者:Rahul Gupta
译者:倔强青铜三

前言

大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

欢迎来到 100 天 Python 挑战第 19 天
今天深入 异常处理 的两大杀器:assert 断言与 raise 自定义异常。早期抓 bug、优雅拒错输入,全靠它们。


📦 今日收获清单


✅ 1. 什么是 assert

assert 是调试神器:条件为 True 无事发生,为 False 立即抛出 AssertionError 并终止程序。

🔹 语法

assert 条件, "可选的异常信息"

🧪 示例:年龄门槛

age = 20assert age >= 18, "You must be at least 18"print("Access granted!")

age = 16,输出:

AssertionError: You must be at least 18

🤔 何时用 assert


🔥 2. 用 raise 主动抛异常

当条件不满足,主动触发异常,让调用方处理。

🔹 抛内建异常

age = -5if age < 0:    raise ValueError("Age cannot be negative.")

运行即得:

ValueError: Age cannot be negative.

🛠️ 3. 自定义异常

继承 Exception,让异常语义更清晰。

🔹 定义与使用

class TooYoungError(Exception):    passdef check_age(age):    if age < 18:        raise TooYoungError("You must be at least 18 years old.")check_age(16)  # 触发 TooYoungError

🚀 实战:银行取款

class InsufficientFundsError(Exception):    passdef withdraw(balance, amount):    if amount > balance:        raise InsufficientFundsError("Not enough balance.")    return balance - amountprint(withdraw(1000, 1200))  # 报错:InsufficientFundsError

🧠 断言 vs 抛异常:对照表

特性assertraise
场景内部调试输入校验、业务异常
生产环境可被忽略始终生效
异常类型固定 AssertionError任意自定义
信息仅字符串可附带任意数据

📌 最佳实践


🧠 一日精华

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎点赞收藏关注,一键三连!!!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python 断言 自定义异常 异常处理
相关文章