else 与 finally 语句的用法

文章顶部广告位
728×90 或 336×280

一、引言

else 和 finally 让异常处理更完整!我们再详细讲讲!

💡 else 块在没异常时执行,finally 块总是执行!

二、else 子句详解

try:
    num = int(input("请输入整数:"))
    result = 100 / num
except ValueError:
    print("输入不是整数!")
except ZeroDivisionError:
    print("不能除以零!")
else:
    print(f"计算成功!100 / {num} = {result}")
    print("(else 块只在 try 块完全没问题时才执行)")

三、finally 子句详解

f = None
try:
    f = open("test.txt", "r", encoding="utf-8")
    content = f.read()
    print(content)
except FileNotFoundError:
    print("文件不存在!")
finally:
    if f is not None:
        f.close()  # 不管有没有异常,都要关闭文件!
    print("(finally 块总是会执行,无论是否出错)")

# 当然,更好的方式是用 with!
print("\n--- 用 with 更优雅 ---")
try:
    with open("test.txt", "r", encoding="utf-8") as f:
        print(f.read())
except FileNotFoundError:
    print("文件不存在!")

总结

通过本章学习,你应该已经掌握了「else 与 finally 语句的用法」的相关知识。

下一篇是最后一篇!

文章中间广告位
600×300 或 300×250
← 上一篇 下一篇 →
文章底部广告位
728×90 或 300×250