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使用循环实现批量创建文件夹示例
Mar 25 Python
朴素贝叶斯算法的python实现方法
Nov 18 Python
python实现在windows下操作word的方法
Apr 28 Python
Python对数据库操作
Mar 28 Python
浅谈Python处理PDF的方法
Nov 10 Python
python实现图片中文字分割效果
Jul 22 Python
python re.sub()替换正则的匹配内容方法
Jul 22 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
Python实现图像的垂直投影示例
Jan 17 Python
python第三方库学习笔记
Feb 07 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
Python unittest装饰器实现原理及代码
Sep 08 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产生动态的影像图
2006/10/09 PHP
很实用的一个完整email发送程序
2006/10/09 PHP
php curl_init函数用法
2014/01/31 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
js 幻灯片的实现
2011/12/06 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
js倒计时小程序
2013/11/05 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
javascript面向对象之对象的深入理解
2015/01/13 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
python读取word文档的方法
2015/05/09 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python中安装easy_install的方法
2018/11/18 Python
Python语言快速上手学习方法
2018/12/14 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
Python自动化操作实现图例绘制
2020/07/09 Python
Python 爬虫的原理
2020/07/30 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
2019大学生实习报告
2019/06/21 职场文书
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis