+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

规范化脚本:python的异常处理

发布于2019-10-11 13:43     阅读(862)     评论(0)     点赞(4)     收藏(3)


写好一个脚本,异常处理非常重要,否则会因为文件权限,网络问题等一系列不稳定因素造成脚本或应用的失败,为了在实际项目生产中使脚本稳定,可持续化,我们需要使用异常处理

python的异常处理主要是下面这个框架

try - except

  1. try:
  2. <语句> #运行代码
  3. except <异常类型>:
  4. <语句> #如果在try部份引发了'name'异常
  5. except:
  6. <语句> #除了name之外的其他异常类型
  7. else:
  8. <语句> #如果try里没有异常发生则会运行else里面的语句

try - finally

  1. try:
  2. <语句>
  3. finally:
  4. <语句> #退出try时无论是否有异常都会执行这里的语句

try - finally - except

  1. '''
  2. 当在try块中抛出一个异常,立即执行finally块代码。
  3. finally块中的所有语句执行后,异常被再次触发,并执行except块代码。
  4. '''
  5. try:
  6. <语句>
  7. try:
  8. <语句>
  9. finally
  10. <语句>
  11. except
  12. <语句>
  13. else:
  14. <语句>

此外还可以自定义异常类型,这里篇幅有限不再述说

实例,这是一个往外post数据的异常处理脚本,保障了即使遇到网络,接收端等异常时仍能继续运行脚本

  1. while True: # 一直循环直到访问站点成功
  2. try:
  3. # 以下except都是用来捕获当requests请求出现异常时,
  4. # 通过捕获然后等待网络情况的变化,以此来保护程序的不间断运行
  5. datas = "indexCode=%s&operationName=111&operationTime=%s" % (result1[i][1],result1[i][3])
  6. r = requests.post("http://1.1.1.1:9010",datas)
  7. break
  8. except requests.exceptions.ConnectionError:
  9. print('ConnectionError -- please wait 3 seconds')
  10. time.sleep(3)
  11. except requests.exceptions.ChunkedEncodingError:
  12. print('ChunkedEncodingError -- please wait 3 seconds')
  13. time.sleep(3)
  14. except:
  15. print('Unfortunitely -- An Unknow Error Happened, Please wait 3 seconds')
  16. time.sleep(3)

附录所有的异常类型(来源于菜鸟)

异常名称 描述
BaseException 所有异常的基类
SystemExit 解释器请求退出
KeyboardInterrupt 用户中断执行(通常是输入^C)
Exception 常规错误的基类
StopIteration 迭代器没有更多的值
GeneratorExit 生成器(generator)发生异常来通知退出
StandardError 所有的内建标准异常的基类
ArithmeticError 所有数值计算错误的基类
FloatingPointError 浮点计算错误
OverflowError 数值运算超出最大限制
ZeroDivisionError 除(或取模)零 (所有数据类型)
AssertionError 断言语句失败
AttributeError 对象没有这个属性
EOFError 没有内建输入,到达EOF 标记
EnvironmentError 操作系统错误的基类
IOError 输入/输出操作失败
OSError 操作系统错误
WindowsError 系统调用失败
ImportError 导入模块/对象失败
LookupError 无效数据查询的基类
IndexError 序列中没有此索引(index)
KeyError 映射中没有这个键
MemoryError 内存溢出错误(对于Python 解释器不是致命的)
NameError 未声明/初始化对象 (没有属性)
UnboundLocalError 访问未初始化的本地变量
ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError 一般的运行时错误
NotImplementedError 尚未实现的方法
SyntaxError Python 语法错误
IndentationError 缩进错误
TabError Tab 和空格混用
SystemError 一般的解释器系统错误
TypeError 对类型无效的操作
ValueError 传入无效的参数
UnicodeError Unicode 相关的错误
UnicodeDecodeError Unicode 解码时的错误
UnicodeEncodeError Unicode 编码时错误
UnicodeTranslateError Unicode 转换时错误
Warning 警告的基类
DeprecationWarning 关于被弃用的特征的警告
FutureWarning 关于构造将来语义会有改变的警告
OverflowWarning 旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning 关于特性将会被废弃的警告
RuntimeWarning 可疑的运行时行为(runtime behavior)的警告
SyntaxWarning 可疑的语法的警告
UserWarning 用户代码生成的警告


所属网站分类: 技术文章 > python文章

作者:放羊人

链接: http://www.pythonheidong.com/blog/article/134215/

来源:python黑洞网 www.pythonheidong.com

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0

赞一赞 or 踩一踩

收藏该文
已收藏

评论内容:(最多支持255个字符)

相似文章

  ATF-(Vantpy1.03)自动化测试框架

  torchvision.transforms

  算法:时间与收益【贪婪】

  剑指offer:Python 二叉树的深度

  服务端&客户端通信实例

  Python 的json标准库使用方法

  Flask笔记:WTForms

  linux 中使用 evdev 捕获键盘(遥控器)输入

  Daily学习笔记(一)

  利用正则表达式爬取豆瓣读书top250书籍信息 附有详细分析

优质资源排行榜

 python经典电子书大合集下载 下载次数 8122

 零基础java开发工程师视频教程全套,基础+进阶+项目实战(152G) 下载次数 7549

 零基础前端开发工程师视频教程全套,基础+进阶+项目实战(共120G) 下载次数 7442

 零基础大数据全套视频400G 下载次数 7005

 零基础php开发工程师视频教程全套,基础+进阶+项目实战(80G) 下载次数 6893

 零基础软件测试全套系统教程 下载次数 6504

 全套人工智能视频+pdf 下载次数 6440

 IOS全套视频教程 基础班+就业班 下载次数 4680

 编程小白的第一本python入门书(高清版)PDF下载 下载次数 3309

10  effective python编写高质量Python代码的59个有效方法 pdf下载 下载次数 3118

11  Python深度学习 pdf下载 下载次数 3087

12  python从入门到精通视频(全60集)python视频教程下载 下载次数 3002

13  python项目开发视频 下载次数 3001

14  笨办法学python pdf下载 下载次数 3000

15  使用python+pygame开发的小游戏《嗷大喵快跑》源码下载 下载次数 2998

16  黑马2017年java就业班全套视频教程 下载次数 2992

17  树莓派Python编程指南 pdf下载 下载次数 2991

18  python实战项目 平铺图像板系统源码下载,适用于想要保存,标记和共享图像,视频和网页的用户 下载次数 2987

19  利用python实现程序内存监控脚本 下载次数 2987

20  老男孩python自动化视频 下载次数 2982

21  Python基础教程 pdf下载 下载次数 2974

22  老王python基础+进阶+项目视频教程 下载次数 2973

23  尚硅谷Go学科全套视频 下载次数 2972

24  某硅谷Python项目+AI课程+核心基础视频教程 下载次数 2968

25  Web前端实战精品课程 下载次数 2967

26  [小甲鱼]零基础入门学习Python 下载次数 2962

27  tron python小游戏 下载次数 2962

28  老男孩python全栈开发15期 下载次数 2958

29  Python Cookbook第三版中文PDF下载高清完整扫描原版 下载次数 2955

30  2017最新web前端开发完整视频教程附源码 下载次数 2948

31  Python算法教程_中文版 pdf下载 下载次数 2931

32  最新全套完整JAVAWEB2018开发视频 下载次数 2926

33  Spring boot实战视频6套下载 下载次数 2909

34  python全套视频十五期(116G) 下载次数 2905

35  Python项目实战 下载次数 2885

36  30个小时搞定Python网络爬虫 含源码 下载次数 2883

37  python全自动抢火车票教程-python视频教程下载 下载次数 2883

38  简明python教程 (A Byte of Python)pdf下载 下载次数 2880

39  Python高性能编程 pdf下载 下载次数 2878

40  尚硅谷大数据之Hadoop视频 下载次数 2876

41  利用Python进行数据分析 pdf下载 下载次数 2868

42  流畅的Python PDF下载高清完整扫描原版 下载次数 2865

43  Python A~B~C~ python视频教程下载 下载次数 2865

44  数据结构与算法视频(小甲鱼讲解-全) 下载次数 2863

45  web小程序表白天数倒计时源码下载 下载次数 2862

46  python基础视频教程 下载次数 2862

47  go语言全套视频 下载次数 2854

48  清华学霸尹成Python爬虫视频-ok 下载次数 2846

49  黑马前端36期最全视频和代码 下载次数 2842

50  2018最新全套web前端视频教程+源码下载 下载次数 2841