一、学前花絮
Python的学习,我们已经输出了30篇文章。从基础知识学起,到现在已经学会了条件控制、循环控制、函数和类/对象的使用等知识。应该说有了这些知识,我们完全可以承担起一个软件工程了。
但在实际项目中,除了注解、注释为了让程序更加可读之外,还有一项工作是为了让程序更健壮。什么意思呢?比如你写一个A除以B的程序,正常输入的时候可以让除数不为0,而一个程序不止是一个用户使用。当出现除数是0的情况怎么办呢?
如果你的程序没有对这种错误或异常进行处理,那么就被认为不是一个好的程序。好的程序要考虑到方方面面的情况。
二、Python3 错误和异常
在 Python 中,错误(Error) 和 异常(Exception) 都是程序执行过程中出现的问题,但它们有不同的含义和处理方式。
2.1 错误(Error) vs 异常(Exception)
1.错误(Error)
通常是更严重的问题,一般是系统级或语法问题,程序无法恢复。
2.异常(Exception)
程序运行期间出现的错误,可以被捕获和处理。
# 常见的异常类型
# ZeroDivisionError: 除数为零
# ValueError: 值错误
# TypeError: 类型错误
# IndexError: 索引错误
# KeyError: 键错误
# FileNotFoundError: 文件未找到
2.2 异常处理机制
基本的 try-except 块
使用try-except处理异常
输出如下:
输出结果
捕获所有异常:
捕获异常
输出结果:
输出结果
2.3 完整的异常处理结构
完整的异常处理结构
# 测试
read_file(‘example.txt’)
read_file(‘nonexistent.txt’)
输出结果:
输出结果
2.4 自定义异常
用类自定义异常
自定义异常类的使用

输出结果:
输出结果
2.5 抛出异常(raise)
抛出异常
测试验证
输出结果:
输出结果
2.6 上下文管理器与异常处理
定义数据库连接类
使用with管理异常
输出结果:
输出结果
三、小结
通过以上的学习,我们对Python错误和异常处理有了比较完整的认识。应该说,没有异常处理的程序是不完整的,或者说不专业的。好的程序,一定要考虑多种可能出错的因素,并对可能出现的错误和异常提前进行规划处理。
Python 的异常处理机制提供了:
- try-except: 捕获和处理异常
- else: 没有异常时执行
- finally: 无论是否异常都执行
- raise: 主动抛出异常
自定义异常: 创建特定领域的异常类型。
通过合理的异常处理,可以使程序更加健壮和用户友好。
让我们保持学习热情,多做练习。我们下期再见!
快乐男孩