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实现微信模板消息
Dec 21 Python
Python简单的制作图片验证码实例
May 31 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
python绘制圆柱体的方法
Jul 02 Python
详解python中递归函数
Apr 16 Python
Python实现FM算法解析
Jun 18 Python
Python列表与元组的异同详解
Jul 02 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
May 25 Python
如何使用Cython对python代码进行加密
Jul 08 Python
Django正则URL匹配实现流程解析
Nov 13 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 Python
Python+Appium自动化测试的实战
Jun 30 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
文件上传类
2006/10/09 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
js实现京东轮播图效果
2017/06/30 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python实现简易端口扫描器代码实例
2017/03/15 Python
python实现八大排序算法(1)
2017/09/14 Python
Django中Model的使用方法教程
2018/03/07 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
升职自荐信范文
2013/10/05 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
借款担保书范文
2014/05/13 职场文书
2014年车间工作总结
2014/11/21 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技