当前位置: 代码网 > it编程>前端脚本>Python > Python异常处理机制之常见异常类型与方法详解

Python异常处理机制之常见异常类型与方法详解

2026年09月10日 Python 我要评论
一、前言在 python 开发过程中,程序出现错误是非常常见的事情。例如:用户输入错误的数据文件不存在网络连接失败数据格式不正确除数为0如果程序没有进行异常处理,一旦出现问题,程序会直接终止运行。优秀

一、前言

在 python 开发过程中,程序出现错误是非常常见的事情。

例如:

  • 用户输入错误的数据
  • 文件不存在
  • 网络连接失败
  • 数据格式不正确
  • 除数为0

如果程序没有进行异常处理,一旦出现问题,程序会直接终止运行。

优秀的程序并不是完全避免错误,而是在错误发生时:

能够发现错误、处理错误,并让程序保持稳定运行。

python 提供了一套完善的异常处理机制,可以帮助开发者提高程序的健壮性。

本文将详细介绍 python 异常处理相关知识。

学习目标包括:

  • 理解语法错误和异常区别
  • 掌握 try-except 捕获异常
  • 掌握异常信息获取
  • 掌握 else 和 finally
  • 掌握 raise 主动抛出异常
  • 掌握 assert 调试
  • 掌握自定义异常类

二、python中的错误类型

python程序中的错误主要分为两大类:

  1. 语法错误
  2. 异常

两者虽然都会导致程序无法正常执行,但是产生阶段完全不同。

1. 语法错误(syntax error)

什么是语法错误?

语法错误指:

程序代码不符合 python 语法规则,在解析阶段就被发现的问题。

特点:

  • 程序还没有开始运行
  • 解释器无法解析代码
  • 必须修改代码才能执行

例如:

if a == 1
    print(a)

错误原因:

python要求:

if 条件:

后面必须添加冒号。

运行:

syntaxerror: expected ':'

常见语法错误:

  • 少写冒号
  • 引号没有闭合
  • 缩进错误
  • 关键字拼写错误

2. 异常(exception)

什么是异常?

异常指:

程序语法正确,可以运行,但是执行过程中发生错误。

例如:

list = [1,2,3]

print(list[3])

代码没有语法问题。

但是:

列表索引只有:

0 1 2

访问:

3

不存在。

产生:

indexerror: list index out of range

三、为什么需要异常处理?

默认情况下:

如果程序发生异常:

python会:

  1. 停止程序运行
  2. 输出错误信息

例如:

print(10/0)

结果:

zerodivisionerror

但是实际项目中:

我们希望:

  • 给用户友好提示
  • 保存错误日志
  • 释放资源
  • 继续运行程序

所以需要:异常处理机制

异常处理的目的:

不是消灭错误,而是在错误发生时提供合理解决方案。

四、try-except捕获异常

python中最基础的异常处理结构:

try:
    可能发生异常的代码

except:
    异常处理代码

执行流程:

没有异常

执行:

try代码

跳过except

继续执行

发生异常

执行:

try代码

发生错误

执行except

继续程序

案例

try:

    result = 10 / 0

except:

    print("程序出现异常")


print("程序继续执行")

输出:

程序出现异常

程序继续执行

这样程序不会直接崩溃。

五、捕获指定异常

虽然:

except:

简单。

但是:

它会捕获所有异常。

实际开发更推荐:

精准捕获。

例如:

try:

    num = 10 / 0


except zerodivisionerror:

    print("不能除以0")

获取异常信息

使用:

as e

例如:

try:

    print(10/0)


except zerodivisionerror as e:

    print(e)

输出:

division by zero

六、多异常处理

一个程序可能产生不同错误。

例如:

try:

    a = int(input())


except valueerror:

    print("输入不是数字")


except typeerror:

    print("类型错误")

python会按照顺序匹配。

注意:

通配异常:

except:

必须放最后。

否则:

会提前捕获所有异常。

七、else子句

try-except还有一个可选结构:

else

作用:

try没有异常时执行。

格式:

try:

    代码

except:

    异常处理

else:

    正常执行

案例:

try:

    result = 10 / 2


except:

    print("错误")


else:

    print(result)

输出:

5

else可以让代码结构更加清晰:

  • try处理风险代码
  • except处理错误
  • else处理成功结果

八、finally:无论如何都会执行

finally特点:

无论是否发生异常,都会执行。

格式:

try:

    代码


except:

    处理异常


finally:

    必执行代码

常见用途:

  • 关闭文件
  • 关闭数据库
  • 释放锁
  • 清理资源

例如:

try:

    file=open("test.txt")


finally:

    file.close()

九、raise主动抛出异常

除了python自动产生异常:

开发者也可以主动制造异常。

使用:

raise

例如:

def login(password):

    if password != "123456":

        raise valueerror("密码错误")

调用:

login("111")

结果:

valueerror: 密码错误

常用于:

  • 参数校验
  • 业务规则检查
  • 数据验证

十、assert断言

assert用于:

判断程序是否满足预期条件。

格式:

assert 条件,提示信息

例如:

age=10


assert age>=18,"年龄不符合要求"

如果条件失败:

产生:

assertionerror

适合:

  • 开发调试
  • 检查程序逻辑

不适合作为正式业务异常处理。

十一、自定义异常

python提供很多异常:

例如:

  • valueerror
  • typeerror
  • indexerror

但是业务开发中:

可能需要:

  • 用户不存在
  • 余额不足
  • 权限不足

这时候可以创建自己的异常。

创建自定义异常

class usererror(exception):

    pass

必须继承:

exception

使用自定义异常

class usernotfounderror(exception):

    pass



def find_user(name):

    users=["admin"]


    if name not in users:

        raise usernotfounderror("用户不存在")

捕获:

try:

    find_user("tom")


except usernotfounderror as e:

    print(e)

十二、with上下文管理器

在开发中:

经常操作资源:

例如:

  • 文件
  • 数据库
  • 网络连接

资源使用后必须释放。

python提供:

with

自动管理资源。

例如打开文件:

传统方式:

file=open("a.txt")

file.close()

如果中途异常:

可能无法关闭。

with方式:

with open("a.txt") as f:

    data=f.read()

代码结束:

python自动关闭文件。

with本质:

try
+
finally

十三、python常见异常类型

异常说明
valueerror值错误
typeerror类型错误
nameerror变量不存在
indexerror索引越界
keyerror字典不存在键
zerodivisionerror除数为0
attributeerror属性错误
filenotfounderror文件不存在
syntaxerror语法错误

十四、实际开发中的异常处理原则

1. 不要随便捕获所有异常

不推荐:

except:
    pass

因为:

错误会被隐藏。

2. 精准捕获异常

推荐:

except valueerror:

而不是:

except:

3. 资源必须释放

推荐:

with open()

或者:

finally

4. 自定义异常贴合业务

例如:

passworderror

usernotfounderror

permissionerror

让错误更加容易理解。

十五、总结

python异常处理核心知识:

知识点作用
语法错误代码规则错误
异常运行过程错误
try-except捕获异常
except as获取错误信息
else成功执行逻辑
finally资源释放
raise主动抛异常
assert调试检查
自定义异常业务错误
with自动管理资源

掌握异常处理,是 python 从入门走向实际开发的重要一步。

在真实项目中:一个优秀程序不仅要实现功能,更要能够正确面对各种异常情况。

以上就是python异常处理机制之常见异常类型与方法详解的详细内容,更多关于python异常处理的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com