Python使用try except处理程序异常的三种常用方法分析


Posted in Python onSeptember 05, 2018

本文实例讲述了Python使用try except处理程序异常的三种常用方法。分享给大家供大家参考,具体如下:

如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序:

try:
  语句1
  语句2
  .
  .
  语句N
except .........:
  do something .......

但是你并不知道"语句1至语句N"在执行会出什么样的异常,但你还要做异常处理,且想把出现的异常打印出来,并不停止程序的运行,所以在"except ......"这句应怎样来写呢?

总结了一下3个方法:

方法一:捕获所有异常

try:
  a=b
  b=c
except Exception,e:
  print Exception,":",e

测试结果:

<type 'exceptions.Exception'> : name 'b' is not defined

方法二:采用traceback模块查看异常

#引入python中的traceback模块,跟踪错误
import traceback
try:
  a=b
  b=c
except:
  traceback.print_exc()

方法三:采用sys模块回溯最后的异常

#引入sys模块
import sys
try:
  a=b
  b=c
except:
  info=sys.exc_info()
  print info[0],":",info[1]

运行结果:

<type 'exceptions.NameError'> : name 'b' is not defined

但是,如果你还想把这些异常保存到一个日志文件中,来分析这些异常,那么请看下面的方法:

把 traceback.print_exc() 打印在屏幕上的信息保存到一个文本文件中

import traceback
try:
  a=b
  b=c
except:
  f=open("c:\log.txt",'a')
  traceback.print_exc(file=f)
  f.flush()
  f.close()

此时C盘根目录下生成一个log.txt文件,内容如下:

Traceback (most recent call last):
  File "C:\py\3waterPyDemo\src\Demo\test.py", line 3, in <module>
    a=b
NameError: name 'b' is not defined

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
详解JavaScript编程中的window与window.screen对象
Oct 26 Python
python去掉行尾的换行符方法
Jan 04 Python
Python利用BeautifulSoup解析Html的方法示例
Jul 30 Python
windows环境下tensorflow安装过程详解
Mar 30 Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
python环境路径配置以及命令行运行脚本
Apr 02 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
Python装饰器如何实现修复过程解析
Sep 05 Python
python的dict判断key是否存在的方法
Dec 09 Python
OpenCV图像变换之傅里叶变换的一些应用
Jul 26 Python
python使用__slots__让你的代码更加节省内存
Sep 05 #Python
Python中__slots__属性介绍与基本使用方法
Sep 05 #Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 #Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 #Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 #Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 #Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 #Python
You might like
基于mysql的论坛(4)
2006/10/09 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
js 走马灯简单实例
2013/11/21 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
python实现封装得到virustotal扫描结果
2014/10/05 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
信息专业个人的自我评价
2013/12/27 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers