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实现的简单窗口倒计时界面实例
May 05 Python
Python单例模式的两种实现方法
Aug 14 Python
Python基于回溯法子集树模板解决全排列问题示例
Sep 07 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
python读取Excel实例详解
Aug 17 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
python 实现绘制整齐的表格
Nov 18 Python
基于Python实现简单学生管理系统
Jul 24 Python
几款好用的python工具库(小结)
Oct 20 Python
Python datetime模块的使用示例
Feb 02 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 Error与Logging函数的深入理解
2013/06/03 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
python skimage 连通性区域检测方法
2018/06/21 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
python爬取微信公众号文章
2018/08/31 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
基于python实现操作git过程代码解析
2020/07/27 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
简历自我评价模版
2014/01/31 职场文书
剪彩仪式主持词
2014/03/19 职场文书
经济国贸专业求职信
2014/06/18 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
python 自动刷新网页的两种方法
2021/04/20 Python
python文件名批量重命名脚本实例代码
2021/04/22 Python
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python