设为首页 收藏本站
查看: 874|回复: 0

[经验分享] Python笔记——异常处理

[复制链接]

尚未签到

发表于 2017-4-27 08:45:24 | 显示全部楼层 |阅读模式
Python笔记——异常处理

捕获异常

try:
<语句>
except <异常名1>:
<语句>
except <异常名2>:
<语句>
else:
<语句>


另一种形式,不包含exceptelse语句

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 = lengthself.minLength = minLength#引发自定义的异常l = [1,2,3,4,5]minLength = 6try: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")


以上两段程序运行结果:
DSC0000.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-369727-1-1.html 上篇帖子: Python笔记——基本文件操作 下篇帖子: python中使用配置文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表