游戏门户网站 织梦试用网站如何做

张小明 2026/1/9 12:20:41
游戏门户网站 织梦,试用网站如何做,优秀网站建设多少钱,科技公司网站设计公司#x1f6e1;️ 说明#xff1a;没有程序能永远不出错。网络中断、文件丢失、用户输入非法……这些“意外”是常态。本篇系统讲解 Python 的异常处理机制#xff0c;教你如何优雅地捕获、处理和预防错误#xff0c;让程序在异常情况下依然稳定运行或安全退出。 你将掌握️说明没有程序能永远不出错。网络中断、文件丢失、用户输入非法……这些“意外”是常态。本篇系统讲解 Python 的异常处理机制教你如何优雅地捕获、处理和预防错误让程序在异常情况下依然稳定运行或安全退出。你将掌握异常 vs 错误的区别try...except...else...finally完整结构常见内置异常类型及应对策略自定义异常类最佳实践何时捕获何时抛出1. 为什么需要异常处理❌ 不处理异常的后果# 用户输入非数字ageint(input(请输入年龄: ))# 输入 abc → 程序崩溃# ValueError: invalid literal for int() with base 10: abc✅ 处理后的体验whileTrue:try:ageint(input(请输入年龄: ))breakexceptValueError:print(❌ 年龄必须是数字请重试)目标防止程序崩溃给用户清晰提示记录错误日志便于排查2. 异常处理基本结构完整语法try:# 可能出错的代码risky_operation()exceptSpecificErrorase:# 处理特定异常handle_error(e)except(Error1,Error2)ase:# 处理多种异常handle_common_error(e)exceptExceptionase:# 捕获所有其他异常慎用log_and_exit(e)else:# 无异常时执行可选print(操作成功)finally:# 无论是否异常都执行清理资源cleanup()执行流程try→ 若无异常 →else→finallytry→ 若有异常 → 匹配except→finally3. 常见内置异常类型速查异常触发场景处理建议ValueError值类型正确但值无效如int(abc)校验输入格式TypeError类型不匹配如a 1检查变量类型FileNotFoundError文件不存在检查路径或创建默认文件KeyError字典键不存在用.get()或先检查inIndexError列表索引越界检查长度或用tryZeroDivisionError除零错误判断分母是否为零PermissionError权限不足提示用户或换路径示例安全读取字典data{name:Alice}# ❌ 危险print(data[age])# KeyError!# ✅ 安全方式1使用 get()agedata.get(age,未知)# ✅ 安全方式2异常处理try:agedata[age]exceptKeyError:age未知4. 捕获多个异常方式一分别处理try:withopen(config.txt)asf:valueint(f.read())exceptFileNotFoundError:print(配置文件缺失使用默认设置)value42exceptValueError:print(配置文件格式错误使用默认值)value42方式二统一处理try:resultrisky_calculation()except(ValueError,TypeError,ZeroDivisionError)ase:print(f计算失败:{e})result0⚠️避免裸露的except:会捕获包括KeyboardInterrupt在内的所有异常5.else与finally的妙用else仅当无异常时执行try:numint(input(输入数字: ))exceptValueError:print(无效输入)else:print(f你输入了:{num})# 只有成功转换才打印finally资源清理关键fileNonetry:fileopen(data.txt)process(file)exceptIOError:print(文件处理失败)finally:iffile:file.close()# 确保文件关闭# ✅ 更好的写法用 with自动调用 __exit__withopen(data.txt)asfile:process(file)# 自动关闭无需 finally黄金法则能用with的地方文件、锁、网络连接就不要手动写finally6. 抛出异常raise主动触发异常用于校验或中断流程。基本用法defdivide(a,b):ifb0:raiseValueError(除数不能为零)returna/b# 调用try:resultdivide(10,0)exceptValueErrorase:print(e)# 除数不能为零重新抛出异常try:risky_operation()exceptExceptionase:log_error(e)# 记录日志raise# 重新抛出原异常保留 traceback7. 自定义异常类当内置异常无法准确描述问题时创建专属异常。示例用户管理系统classUserNotFoundError(Exception):用户未找到def__init__(self,user_id):self.user_iduser_idsuper().__init__(f用户 ID{user_id}不存在)classInvalidEmailError(Exception):邮箱格式无效pass# 使用defget_user(user_id):ifnotdb.exists(user_id):raiseUserNotFoundError(user_id)try:userget_user(999)exceptUserNotFoundErrorase:print(f❌{e})# 输出❌ 用户 ID 999 不存在✅命名规范以Error结尾如ValidationError8. 异常处理最佳实践原则说明具体优于宽泛优先捕获FileNotFoundError而非Exception不要忽略异常至少记录日志logging.exception()快速失败发现无效状态立即抛出异常而非继续执行异常用于异常情况不要用异常控制正常流程如循环终止文档化异常在函数 docstring 中说明可能抛出的异常反例用异常控制流程低效且难读# ❌ 不要这样做i0whileTrue:try:itemmy_list[i]process(item)i1exceptIndexError:break# 用异常判断结束# ✅ 正确做法foriteminmy_list:process(item)9. 实战安全文件读取函数整合所学知识编写一个健壮的文件读取工具importloggingfrompathlibimportPathdefsafe_read_file(filepath:str,encoding:strutf-8)-str|None: 安全读取文本文件。 :param filepath: 文件路径 :param encoding: 文件编码 :return: 文件内容失败时返回 None :raises: 不抛出异常内部处理并记录日志 pathPath(filepath)try:ifnotpath.exists():logging.warning(f文件不存在:{filepath})returnNonereturnpath.read_text(encodingencoding)exceptPermissionError:logging.error(f权限不足无法读取:{filepath})exceptUnicodeDecodeErrorase:logging.error(f编码错误 ({encoding}):{filepath},{e})exceptOSErrorase:logging.error(f系统错误读取文件{filepath}:{e})returnNone# 所有异常路径均返回 None✅ 特点不暴露异常给调用者详细日志便于调试明确返回值语义10. 总结异常处理心法预见错误思考“这段代码可能在哪出错”精准捕获只捕获你能处理的异常优雅降级提供备选方案如默认值、重试透明反馈让用户知道发生了什么保持简洁不要过度防御平衡健壮性与复杂度记住“异常处理不是掩盖错误而是管理不确定性。”—— 专业开发者的核心素养下一步练习改造你的 To-Do List添加输入验证任务标题不能为空捕获无效任务 ID 并友好提示编写一个除法计算器处理非数字输入、除零错误支持连续计算直到用户退出阅读官方文档Built-in Exceptions真正的健壮是在风暴中依然前行。用异常处理为你的程序穿上铠甲继续构建可靠、用户友好的 Python 应用
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

新手用jsp做网站wordpress点播主题

一、CAN物理层1、电气特性总线结构物理特征(左:闭环;右:开环):​CAN总线由两根信号线组成,使用的是差分信号,是一种异步通讯CAN总线网络的结构有闭环和开环两种,其对应标…

张小明 2026/1/5 19:06:41 网站建设

做歌手的网站做python题目的网站

终极指南:5分钟掌握LOOT模组排序,彻底解决天际冲突难题 【免费下载链接】skyrimse The TES V: Skyrim Special Edition masterlist. 项目地址: https://gitcode.com/gh_mirrors/sk/skyrimse LOOT模组排序工具是《上古卷轴V:天际 特别版…

张小明 2026/1/7 5:52:41 网站建设

网站维护与建设合同书陈木胜老婆吴君如

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/3 17:03:21 网站建设

三明网站建设公司经营范围 网站建设

PaddlePaddle GPU算力组合推荐:最适合中文AI项目的开发环境 在当今AI项目开发中,一个常见痛点是:明明算法设计得不错,训练却慢如蜗牛;好不容易训完模型,部署时又遇到兼容性问题。尤其在处理中文任务时&…

张小明 2026/1/4 5:19:48 网站建设

网站设计一般多少钱一个页面网站建设制作设计珠海

终极抢币神器:纪念币自动化预约工具完整指南 【免费下载链接】auto_commemorative_coin_booking 项目地址: https://gitcode.com/gh_mirrors/au/auto_commemorative_coin_booking 还在为纪念币预约屡战屡败而烦恼吗?这款纪念币自动化预约工具正是…

张小明 2026/1/5 20:57:25 网站建设

手机如何创网站模板app

MyFlash终极指南:MySQL数据误删恢复神器快速上手 【免费下载链接】MyFlash flashback mysql data to any point 项目地址: https://gitcode.com/gh_mirrors/my/MyFlash 还在为误删MySQL数据而焦虑吗?MyFlash闪亮登场!这款由美团点评技…

张小明 2026/1/5 2:07:36 网站建设