Python运行时错误,可以转储文件?
-
23-08-2019 - |
题
我使用libcurl的DL到一个网页,那么我扫描它的数据,然后重新与链接的一个东西。然而,一旦在一段时间的页面是不同的,那么我除了这样,我提取坏数据和pycurl抛出异常。我试图寻找对pycurl异常的名字,但没有运气。
有没有一种方法我可以追溯执行的功能,所以我可以转储文件,所以我可以看看文件的输入,看看是我的代码错在哪里?
解决方案
sys.excepthook 可以帮助你在这里,在那里你可以设置一个全球性的异常处理程序。我不知道如何pycurl异常处理,它是一个绑定库,但它可能会工作重新分配给一个通用的功能。是这样的:
>>> import sys
>>>
>>> def my_global_exception_handler(type, value, traceback):
... print traceback
... sys.exit()
...
>>> sys.excepthook = my_global_exception_handler
>>> raise
<traceback object at 0xb7cfcaa4>
此例外钩子功能可以很容易地能够访问需要转储文件的一个实例方法。
其他提示
您可以使用一个通用的异常处理程序。
logging.basicConfig( file="someFile.log", level=logging.DEBUG )
logger= logging.getLogger( __name__ )
try:
curl = pycurl.Curl()
curl.setopt(pycurl.URL, url)
# etc.
curl.perform()
curl.close
logger.info( "Read %s", url )
except Exception, e:
logger.exception( e )
print e, repr(e), e.message, e.args
raise
logging.shutdown()
这会写一个很好的日志有你要找的异常信息。
你能某处捕获所有异常在主块和回调信息使用sys.exc_info()和日志到您的文件。 exc_info()返回不仅仅是异常类型,也叫回溯所以应该有信息出了什么问题。
不隶属于 StackOverflow