跳转至

异常、上下文管理器与资源释放

异常表示运行时无法按正常流程完成的情况。只捕获你能正确处理的具体异常:

try:
    value = int(text)
except ValueError as error:
    raise ValueError(f"必须是整数:{text!r}") from error

raise ... from error 保留原始异常链,方便排查原因。不要使用裸 except: 或捕获后 pass;这会吞掉 KeyboardInterrupt 等信号或隐藏程序错误。

使用 with 管理资源

文件、锁和网络响应等资源应使用上下文管理器:

from pathlib import Path

with Path("notes.txt").open("r", encoding="utf-8") as file:
    content = file.read()

无论代码块正常结束还是抛出异常,with 都会执行清理逻辑。它通常比手写 try/finally 更简洁可靠。

参考

评论