Python笔记——异常处理
来源:互联网 发布:互联网大数据公司排名 编辑:程序博客网 时间:2024/05/13 07:21
Python笔记——异常处理
捕获异常
try:
<语句>
except <异常名1>:
<语句>
except <异常名2>:
<语句>
else:
<语句>
另一种形式,不包含except和else语句
try:
<语句>
finally:
<语句>
eg.
- l = [1,2,3,4]
- try:
- print(l[5])
- except:
- print("error")
- else:
- print("no error")
- finally:
- print("finally")
常见的异常:
AttributeError 调用不存在的方法引发的异常
EOFError 遇到文件末尾引发的异常
ImportError 导入模块出错引发的异常
IndexError 列表月越界引发的异常
IOError I/O操作引发的异常,如打开文件出错等
KeyError 使用字典中不存在的关键字引发的异常
NameError 使用不存在的变量名引发的异常
TabError 语句块缩进不正确引发的异常
ValueError 搜索列表中不存在值引发的异常
ZeroDivisionError 除数为零引发的异常
eg.
try:
l[2]/0
except IndexError:
print('IndexError')
except ZeroDivisionError:
print('ZeroDivisionError')
else:
print 'no error'
多重异常的处理
可以在try语句中嵌套另一个try语句
一旦发生异常,python匹配最近的except语句,
若是内部except能够处理该异常,则外围try语句不会捕获异常。
若是不能,或者忽略,外围try处理
引发异常
python中可以通过raise语句手工引发异常,并向异常传递数据
使用raise可以定义新的错误类型,以适应脚本的需要
格式:
raise 异常名
raise 类名(异常信息)
捕获时:
except MyException as e:
print(e) #将打印出异常信息
- #自定义异常
- class LengthRequiredException(Exception):
- def __init__(self,length,minLength):
- Exception.__init__(self)
- self.length = length
- self.minLength = minLength
- #引发自定义的异常
- l = [1,2,3,4,5]
- minLength = 6
- try:
- raise LengthRequiredException(len(l),minLength)
- except IndexError:
- print("index out of bounds")
- except LengthRequiredException as e:
- print("Length not fit :length is %d required %d" %(e.length,e.minLength))
- else:
- print("no exception was raised")
- finally:
- print("finally will be execute")
以上两段程序运行结果:
- Python笔记——异常处理
- Python笔记——异常处理
- python学习笔记——异常处理
- Python 学习笔记 ——异常处理
- Python学习笔记(八)——Python 异常处理
- 异常处理——菜鸟的Python笔记
- python复习笔记[9] —— 异常处理
- Python学习笔记(九)——异常处理
- 异常处理——python
- Python学习笔记--异常处理
- python笔记12--异常处理
- Python学习笔记--异常处理
- Python学习笔记--异常处理
- python异常处理基础笔记
- Python学习笔记 异常处理
- Python异常处理学习笔记
- java异常处理笔记—
- 「学习笔记——Python」Python 的错误和异常处理
- 数据库异常 形参 @strCompellation 未声明为 OUTPUT 参数 但传递进来的实参请求输出
- GEO算法
- 玩转Eclipse — 项目的.settings目录解密
- 北漂·行 --【叶子】
- hdu 4715 Difference Between Primes
- Python笔记——异常处理
- 存储方式与介质对性能的影响
- hdu 4707 Pet 2013年ICPC热身赛A题 dfs水题
- (转载)Array,ArrayList, List<>的区别
- 2.14 子数组之和的最大值
- Struts验证的处理
- 关于C++中的函数返回局部string的问题
- Hibernate征途(一)之初识
- virtio基本原理(kvm半虚拟化驱动)