16.异常处理机制:exception

本文总结了Python中的常见异常类型,包括断言失败、访问未知对象方法等,并通过实例介绍了如何使用try-except-finally结构来有效处理这些异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python常见异常总结:http://bbs.fishc.com/forum.php?mod=viewthread&tid=45814&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

AssertError:断言assert语句失败
AttributeError:尝试访问未知的/不存在的对象的方法

IndentationError:缩进错误
ImportError:导入模块失败
SyntaxError:python的语法错误
ZeroDivisionError:除零错误
IndexError:索引超出序列的范围
TypeError:不同类型直接运算

KeyError:字典中查找一个不存在的关键字

IOError:没有文件或目录

MemoryError:内存溢出(可通过删除和释放对象解决)

NameError:尝试访问一个不存在的变量

KeyboardError:中断键(Ctrl+C)

OSError:操作系统产生的异常(例如打开一个不存在的文件)

OverflowError:数值运算超出最大限制

RuntimeError:一般运行时出现的错误(递归超出最大迭代次数等)

ReferenceError:试图访问一个已经被垃圾回收机制回收的对象

ValueError:传入无效的参数

FloatingPointError:浮点计算错误

EOFError:用户输入文件末尾标志EOF(Ctrl+D)

NotImplementedErrror:尚未实现的方法

检测并处理异常

语法:

try:
    检测范围
except Exception[as reason]:  #Exception异常类型  reason:异常原因
    出现异常后处理异常的代码
finally:
    无论如何让都会被执行的代码

例:

【代码1try:
    f = open('G:\\new.txt','w') #以w方式打开文件
    f.write('I love you!')
    1/0   #发生除以0异常
    f.close()   #发生除以0异常后,直接跳过此句话
except (IOError,ZeroDivisionError) as reason:  #捕获初零异常
    print('文件出错误了!\n' + str(reason))  #打印错误原因

文件出错误了!
integer division or modulo by zero
但是:并没有把'I love you!'写入'G:\\new.txt'文件,
因为除零异常发生,直接跳过f.close()语句,因此缓冲区中的
数据还没有写入文件,就被释放。

【代码2】修改成带finally的代码
try:
    f = open('G:\\new.txt','w') #以w方式打开文件
    f.write('I love you!')
    1/0   #发生除以0错误
except (IOError,ZeroDivisionError) as reason:  #捕获初零异常
    print('文件出错误了!\n' + str(reason))  #打印错误原因
finally:   #把必须要执行的代码放在finally之后
    f.close() 

文件出错误了!
integer division or modulo by zero
此时,把'I love you!'写入了'G:\\new.txt'文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值