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 13 Python
linux系统使用python监测系统负载脚本分享
Jan 15 Python
python实现simhash算法实例
Apr 25 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
python+pyqt实现右下角弹出框
Oct 26 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
简单了解Python生成器是什么
Jul 02 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
python3 mmh3安装及使用方法
Oct 09 Python
解决pytorch-yolov3 train 报错的问题
Feb 18 Python
jupyter notebook 参数传递给shell命令行实例
Apr 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
php之curl设置超时实例
2014/11/03 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
javascript实现的网页局布刷新效果
2008/12/01 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
详解Vue路由自动注入实践
2019/04/17 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
Python标准库内置函数complex介绍
2014/11/25 Python
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python语法快速入门指南
2015/10/12 Python
Python标准库shutil用法实例详解
2018/08/13 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
基于python实现高速视频传输程序
2019/05/05 Python
python socket 聊天室实例代码详解
2019/11/14 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
医院工作检讨书范文
2014/02/10 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
团队会宣传标语
2014/10/09 职场文书
三方股东合作协议书
2014/10/28 职场文书
办公室岗位职责范本
2015/04/11 职场文书