
17 python基础--异常处理
执行 如果发生异常,进入对应的 如果没有异常,执行 最后,不管是否有异常,都会执行
发布日期:2021-05-14 12:22:31
浏览次数:11
分类:精选文章
本文共 1551 字,大约阅读时间需要 5 分钟。
Python异常处理指南
1. 异常定义
异常是Python中用来表示程序运行中出现问题的机制。简单来说,就是在代码运行过程中,某些操作无法按预期完成时,会抛出异常。这些异常可以分为两种:错误和异常。
- 错误是指在语法或逻辑上是正确的操作中,仍然出现了无法预料的问题。
- 异常更严重,是指在语法逻辑正确的前提下,某些操作根本无法完成。
在Python中,异常是一个类,可以通过抛出(raise
)和捕捉(try
-except
)机制来处理。
2. 常见异常类型
以下是一些常见的Python异常类型:
- AssertionError:用于断言语句(
assert
)失败。 - AttributeError:尝试访问一个对象没有的属性。
- EOFError:试图读取文件末尾标志(
EOF
,通常是Ctrl+d)。 - FloatingPointError:浮点数计算出现错误。
- GeneratorExit:生成器的
close()
方法被调用时引起。 - ImportError:导入模块失败。
- IndexError:索引超出序列范围。
- KeyError:尝试访问字典中的不存在的关键字。
- KeyboardInterrupt:用户中断键盘输入(Ctrl+c)。
- MemoryError:内存溢出(可通过删除对象释放内存)。
- NameError:尝试访问一个不存在的变量或函数。
- NotImplementedError:未实现的方法。
- OSError:操作系统异常,如尝试打开不存在的文件。
- OverflowError:数值运算超出最大限制。
- ReferenceError:弱引用尝试访问已经被垃圾回收的对象。
- RuntimeError:一般的运行时错误。
- StopIteration:生成器没有更多值可以返回。
- SyntaxError:语法错误。
- UnicodeError:Unicode相关错误。
- ValueError:传入无效的参数。
3. 异常处理
异常处理是编写健壮代码的关键。在现实应用中,我们无法保证程序在所有情况下都能正常运行,所以必须处理各种潜在问题。
Python的异常处理机制通过try
、except
和finally
标签来实现:
try
:尝试执行后面的代码块。except
:如果在try
块中发生异常,可以在这里捕获并处理该异常。except
(异常类型):为特定异常准备处理逻辑。except
(多个异常):使用逗号分隔多个异常类型。- **
except
:没有异常时执行的代码块。 finally
:不管是否发生异常,都会执行的代码块。
异常处理流程如下:
try
内的代码。except
块处理。else
块。finally
块。4. 手动引发异常
有时候,我们需要自行引发异常以测试代码的健壮性。可以使用raise
关键字来实现:
# 自定义异常类class DanaValueError(ValueError): pass# 手动引发一个异常raise DanaValueError("我爱王晓静")
当引发异常时,可以指定异常类型。可以使用多个except
块来处理不同的异常类型:
try: print("我爱王晓静") print(3.1415926) raise DanaValueError("DanaValueError发生了")finally: print("我肯定会被执行的")
总结
异常处理是编写健壮代码的关键技能。在Python中,可以通过try
-except
机制来捕获和处理异常,确保程序在各种异常情况下都能稳定运行。掌握这些技能,可以显著提升你的编程水平,避免因简单问题导致程序崩溃。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月16日 06时19分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
推荐系统资料
2019-03-11
文件系统的层次结构
2019-03-11
减少磁盘延迟时间的方法
2019-03-11
磁盘的管理
2019-03-11
FCFS、SJF、HRRN调度算法
2019-03-11
vue(渐进式前端框架)
2019-03-11
权值初始化和与损失函数
2019-03-11
案例讨论
2019-03-11
传输层基本功能
2019-03-11
最长公共子序列
2019-03-11
分治算法的一般描述和分析方法
2019-03-11
问题的计算复杂度:排序问题
2019-03-11
货郎问题与计算复杂性
2019-03-11
算法的伪码表示
2019-03-11
函数的渐近的界
2019-03-11
有关函数渐近的界的定理
2019-03-11
递推方程与算法分析
2019-03-11
迭代法求解递推方程
2019-03-11
主定理及其证明
2019-03-11
主定理的应用
2019-03-11