Python 3 语法入门 目录

Python3 异常处理

代码正常按顺序执行时,如果遇到错误、无法继续运行,程序就会抛出异常,直接崩溃终止。

# 代码会报错并停止运行
num = int("abc")
print("代码继续往下走")

运行结果:程序直接报错,后面   print   根本不会执行。

异常处理的作用:提前预判可能出错的代码,就算报错,程序也不会崩溃,还能自定义提示、做补救逻辑。


异常处理

核心语法:try...except

try:
    num = int("abc")
    print("转换成功")
except:
    print("代码出错啦!字符串不能转为数字")
# 异常被捕获,程序继续运行
print("程序没有崩溃,继续执行...")

捕获指定异常

上面 except: 会捕获所有异常,适合简单场景。实际开发中,我们会区分错误类型,不同错误做不同处理。

  常见异常  


异常类型说明触发场景
ValueError值错误字符串转数字失败、格式不匹配
ZeroDivisionError除零错误分母为 0
IndexError索引错误列表 / 字符串下标越界
KeyError键错误字典中不存在某个 key
FileNotFoundError文件不存在打开一个没有的文件
TypeError类型错误不同类型数据运算(如数字 + 字符串)

  捕获指定异常  

try:
    a = 10 / 0  # 除以0,触发 ZeroDivisionError
except ZeroDivisionError:
    print("错误:除数不能为 0!")

多个异常分开处理

try:
    data = "hello"
    num = int(data)  # 可能触发 ValueError
    res = 10 / 0     # 可能触发 ZeroDivisionError
except ValueError:
    print("错误:数据无法转为数字")
except ZeroDivisionError:
    print("错误:除数不能为 0")

一次性捕获多种异常

try:
    lst = [1,2,3]
    print(lst[10])  # 索引越界
except (IndexError, ValueError):
    print("出现数值错误 或 索引错误")


获取异常信息

想要看到系统原生的错误描述,可以在   except   后接收异常对象:

try:
    num = int("python")
except ValueError as e:
    # e 就是异常信息对象
    print("捕获到异常:", e)
#输出 捕获到异常: invalid literal for int() with base 10: 'python'

异常处理完整组合

语法:try + except + else + finally

try:
    # 风险代码
except 异常类型:
    # 出错执行
else:
    # 【可选】代码**没有报错**时,才会执行
finally:
    # 【可选】无论代码是否报错,**一定会执行**

else 用法

try:
    num = int("123")
except ValueError:
    print("转换失败")
else:
    # 代码正常运行,走到这里
    print("转换成功,数字是:", num)

finally 用法

典型场景:关闭文件、关闭数据库连接、释放资源,无论是否报错,资源必须关闭。

try:
    f = open("test.txt", "r")
    content = f.read()
except FileNotFoundError:
    print("文件不存在")
finally:
    # 不管文件是否存在,都会执行
    print("执行收尾操作")


主动抛出异常:raise

有时候代码本身没报错,但业务逻辑不合法(比如年龄负数),我们可以手动抛出异常,中断流程。

age = -5
if age < 0:
    # 主动抛出异常
    raise ValueError("年龄不能为负数")


更新时间:2026-06-16 14:59:28 阅读量:3

本页目录