当前位置:首页>python>Python 异常处理:try-except 基础结构 + try-except-else-finally 完整精讲

Python 异常处理:try-except 基础结构 + try-except-else-finally 完整精讲

  • 2026-10-11 08:19:03
Python 异常处理:try-except 基础结构 + try-except-else-finally 完整精讲

一、try-except 基础结构

语法格式

try:
# 放有可能报错的代码
    可能出错的代码
except 异常类型:
# 报错后执行的处理代码
    异常处理逻辑

执行逻辑

  1. 1. 先执行 try 里面的代码
  2. 2. 如果没报错:直接跳过 except
  3. 3. 如果发生对应异常:立刻跳到 except 执行,程序不崩溃

示例1:捕获指定异常

try:
    num = int("abc")
except ValueError:
print("无法转为整数,值格式错误")

示例2:捕获多种异常

try:
    lst = [1,2]
print(lst[10])
except IndexError:
print("索引越界")
except KeyError:
print("字典键不存在")

示例3:万能捕获所有异常

try:
10 + "python"
except Exception:
print("程序出现异常")

示例4:获取异常详细信息

try:
print(a)
except NameError as e:
print("错误原因:", e)

二、完整结构:try-except-else-finally

完整固定语法

try:
# 可能出错的代码
    代码块
except 异常类型:
# 有异常才执行
    异常处理
else:
# 无异常才执行
    正常逻辑代码
finally:
# 无论有无异常,必定执行
    收尾、释放资源

四段执行规则(必记)

  1. 1. try:执行核心逻辑
  2. 2. 有异常 → 走 except,不走 else
  3. 3. 无异常 → 走 else,不走 except
  4. 4. finally:不管有没有异常,最后一定执行

三、分场景演示

场景1:代码正常,无异常

try:
    n = int("123")
except ValueError:
print("转换失败")
else:
print("转换成功,数字是:", n)
finally:
print("程序执行完毕")

输出:

转换成功,数字是: 123
程序执行完毕

场景2:代码报错,触发异常

try:
    n = int("hello")
except ValueError:
print("转换失败")
else:
print("转换成功")
finally:
print("程序执行完毕")

输出:

转换失败
程序执行完毕

四、finally 经典用途

用于必须收尾的操作:

  • • 关闭文件
  • • 关闭数据库连接
  • • 释放资源

示例:文件安全关闭

f = None
try:
    f = open("test.txt", "r", encoding="utf-8")
    content = f.read()
except FileNotFoundError:
print("文件不存在")
finally:
if f:
        f.close()
print("文件已关闭")

五、核心总结口诀

  • • try 装危险代码
  • • except 报错才执行
  • • else 没错才执行
  • • finally 死活都执行

六、结构顺序不能乱

只能是:
try → except → else → finally
不能调换顺序。

最新文章

随机文章