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检测lvs real server状态
Jan 22 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
python实现定时同步本机与北京时间的方法
Mar 24 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 Python
python八皇后问题的解决方法
Sep 27 Python
用Django写天气预报查询网站
Oct 21 Python
详解python Todo清单实战
Nov 01 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
python blinker 信号库
May 04 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 默默经典版本
2009/08/04 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
jquery判断输入密码两次是否相等
2020/04/22 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
树结构之JavaScript
2017/01/24 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
python中的字典详细介绍
2014/09/18 Python
Python中的__slots__示例详解
2017/07/06 Python
python 将md5转为16字节的方法
2018/05/29 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
python中的itertools的使用详解
2020/01/13 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
python能自学吗
2020/06/18 Python
python 实现简易的记事本
2020/11/30 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
养殖项目策划书范文
2014/01/13 职场文书
村居抓节水倡议书
2014/05/19 职场文书
2014年收银工作总结
2014/11/13 职场文书
法人代表资格证明书
2015/06/18 职场文书
Python进行区间取值案例讲解
2021/08/02 Python
各国货币符号大全
2022/02/17 杂记
bat批处理之字符串操作的实现
2022/03/16 Python
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫