[python]python中,使用traceback处理异常信息

  近来编写一个程序,该程序可以在设定时间内,获取指定文件夹更新的文件夹和文件列表,并根据获取到的更新列表,做一些操作。由于所写程序是放在服务器上运行,为了保证程序在运行的过程中,不时不时跳出些异常信息出来吓其他用户,就在程序中添加了异常处理。将网上的资料整理下,试着将sys.exce_info()和traceback搭配一起使用。效果还算不错,以下信息是我当前处理异常的方式,其中type是异常的类型,value是出现异常的原因,traceback则是通过traceback追中到的异常信息,能够定位到造成异常的代码。

2016-11-07 22:07:56
-------------------------------
type: <type ‘exceptions.TypeError‘>
value: string indices must be integers, not str
traceback: [(‘文件名‘, 行号, ‘函数名‘, ‘出现异常的代码行‘)]

在try...except中,使用下述两行记录异常情况。针对出现异常之后如何程序如何继续之后的工作,则需要看具体要求。

tp,val,td = sys.exc_info()
Log.logerexception(tp,val,td)

具体代码如下

 1 import os
 2 import time
 3 import traceback
 4 import sys
 5
 6 def logerexception(tp,val,td):
 7     etype = str(tp)
 8     evalue = str(val)
 9     etb = traceback.extract_tb(td)
10     errormsg = "type: " + etype + "\n"
11     errormsg += "value: " + evalue + "\n"
12     errormsg += "traceback: " + str(etb) + "\n"
13     writetofile(errormsg)
14
15 def writetofile(errormsg):
16     logfilepath = os.path.abspath(‘.‘) + "/log"
17     if not os.path.exists(logfilepath):
18         os.mkdir(logfilepath)
19
20     logfile = time.strftime("%Y%m%d", time.localtime()) + ".txt"
21     fp = open(logfilepath + "/" + logfile,"a")
22     ISOTIMEFORMAT= "%Y-%m-%d %X"
23     happeningtime =  time.strftime(ISOTIMEFORMAT, time.localtime())
24     usermsg = ""
25     usermsg += happeningtime + "\n-------------------------------\n"
26     usermsg += errormsg
27     fp.write(usermsg + "\n")
28     fp.close()

时间: 2024-08-02 02:58:33

[python]python中,使用traceback处理异常信息的相关文章

tomcat的webappclassloader中一个奇怪的异常信息

如果一个应用抛出大量的Class not found信息,一般你会怀疑包冲突.可是tomcat的webappclassloader却有这样的问题: 如果一个应用发布出现问题, webappclassloader的started属性被设为false.然后其它线程如果继续使用webappclassloader进行class load,则大量的Class not found异常 被抛出: 1391       public Class loadClass(String name, boolean re

负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息?

负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息? 原文: https://help.aliyun.com/document_detail/127193.html?spm=a2c4g.11186623.6.606.5b7a7ee5RD6Xai 问题现象: 负载均衡后端配置TCP服务端口后,后端业务日志中频繁出现类似如下网络连接异常错误信息.经进抓包分析,发现相关请求来自负载均衡服务器,同时负载均衡主动向服务器发送了RST数据包. 问题原因: 该问题和负载均衡的健康检

Python基础中所出现的异常报错总结

今天我们来探索python中大部分的异常报错 首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等. 打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本...首先类型不对,数量也不对. 先来看几个常见的报错如下: NameError 命名错误 原因是: name 'a' is not defined  命名a还未定义 简单来说就是程序不知道a带表谁 如果a=1 那程序就懂了 a代表1 所以

第三节:使用Log4net和过滤器记录异常信息,返回异常给前端

上次面试,遇到,在项目中如何处理业务异常和代码异常,使用txt记录异常信息后,如何直接区分出异常的类型,异常怎么分类处理,希望大家能帮我提出宝贵的意见,完善处理异常, 统一返回参数 public class HeaderResult { public HeaderResult() { // ReSharper disable once VirtualMemberCallInConstructor IsSucceed = false; } public virtual bool IsSucceed

python中使用traceback来追踪异常

test1.py中,当分母为0的时候,调用系统退出 #!/usr/bin/python import sys def division(a=1, b=1): if b==0: print 'b eq 0' sys.exit(1) else: return a/b test2.py中,用try..except捕获异常,然后traceback.print_exc()打印. #!/usr/bin/python import sys import traceback import test1 a=10

python中利用tracekback跟踪栈以及打印异常信息

?##sys.exc_info() 返回 (type, value, traceback). type为异常类型, value为异常的参数(通常为异常错误的信息), traceback为跟踪回溯的对象. exc_type, exc_value, exc_traceback = sys.exc_info() print "*** print sys.exc_info:" print 'exc_type is: %s, exc_value is: %s, exc_traceback is:

Python异常信息写日志

大家在开发的过程中可能时常碰到一个需求,需要把Python的异常信息输出到日志文件中网上的办法都不太实用,下面介绍一种实用的,从Python 2.7源码中扣出来的废话不说 直接上代码,代码不多,注释比较多而已 1 import sys, traceback 2 3 traceback_template = '''Traceback (most recent call last): 4 File "%(filename)s", line %(lineno)s, in %(name)s 5

python中try except处理程序异常的三种常用方法

如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序: try: 语句1 语句2 ... 如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序: 1 2 3 4 5 6 7 8 try:     语句1     语句2     .     .     语句N except .........:     do something ....... 但是你并不知道"语句1至语句N"在执行会出什

python打印详细的异常信息

#!/usr/bin/env python #coding=utf-8 import traceback try: 1/0 except Exception, e: print e print traceback.format_exc() python打印详细的异常信息,布布扣,bubuko.com