2024-03-28 18:53:42 发布
网友
我用libcurl下载一个网页,然后我扫描它的数据和做一些事情与其中一个链接。但是,偶尔页面会有所不同,因此我会提取错误的数据,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>
这个异常钩子函数可以很容易地成为一个实例方法,它可以访问需要转储的文件。在
你能在主块的某个地方捕捉到所有异常并使用吗系统执行信息()获取回调信息并将其记录到您的文件中。exc_info()不仅返回异常类型,而且还调用回溯,以便提供出错的信息。在
可以使用通用异常处理程序。在
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.excepthook可能对您有所帮助,您可以在此处设置全局异常处理程序。我不确定pycurl异常是如何处理的,它是一个绑定库,但它可能会将其重新分配给一个泛型函数。比如:
这个异常钩子函数可以很容易地成为一个实例方法,它可以访问需要转储的文件。在
你能在主块的某个地方捕捉到所有异常并使用吗系统执行信息()获取回调信息并将其记录到您的文件中。exc_info()不仅返回异常类型,而且还调用回溯,以便提供出错的信息。在
可以使用通用异常处理程序。在
这将写一个很好的日志,其中包含您要查找的异常信息。在
相关问题 更多 >
编程相关推荐