Python异常处理需按类型精细捕获、有针对性地恢复或反馈,避免裸except;应提供默认值、清理资源、记录日志、包装重抛、友好提示,并善用else和finally。

Python 中捕获异常后,关键不是“抓到就算完”,而是要根据异常类型、业务逻辑和用户体验,做有针对性的处理。核心原则是:能恢复就恢复,不能恢复就明确反馈,必要时记录或转抛。
很多新手习惯写 except: 然后 pass,这极容易掩盖真实问题。应优先考虑:
用具体异常类替代裸 except:,便于区分处理逻辑:
try:
data = json.loads(user_input)
except json.JSONDecodeError as e:
print(f"JSON 格式错误:{e}")
data = {}
except TypeError:
print("输入不是字符串,无法解析")
data = {}
这样比 except Exception: 更安全,也更容易调试。
立即学习“Python免费学习笔记(深入)”;
常见合理操作包括:
finally 或上下文管理器更稳妥)logging.exception() 记下完整 tracebackraise ConfigLoadError("配置加载失败") from e
else 块在没异常时执行,适合放“成功路径”的代码,避免误捕正常流程中的异常;finally 一定执行,适合清理:
f = None
try:
f = open("data.txt")
content = f.read()
except FileNotFoundError:
print("文件不存在,使用空数据")
content = ""
else:
print("文件读取成功")
finally:
if f and not f.closed:
f.close() # 确保关闭
基本上就这些。异常处理不是越复杂越好,关键是让程序更健壮、错误更可查、用户更清楚发生了什么。
以上就是python如何处理捕获的异常的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号