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 相关文章推荐
python使用BeautifulSoup分析网页信息的方法
Apr 04 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
Python简单读取json文件功能示例
Nov 30 Python
解决python os.mkdir创建目录失败的问题
Oct 16 Python
Python虚拟环境的原理及使用详解
Jul 02 Python
python搜索包的路径的实现方法
Jul 19 Python
Python socket非阻塞模块应用示例
Sep 12 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
PyTorch: Softmax多分类实战操作
Jul 07 Python
Python3爬虫中Selenium的用法详解
Jul 10 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
PHP array操作10个小技巧分享
2011/06/23 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
javascript RadioButtonList获取选中值
2009/04/09 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
Vue使用lodop实现打印小结
2019/07/06 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python中关键字is与==的区别简述
2014/07/31 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
党支部综合考察材料
2014/05/19 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
钱学森电影观后感
2015/06/04 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android