我正在urllib2的urlopen中使用timeout参数。
urllib2.urlopen('http://www.example.org', timeout=1)
我如何告诉Python,如果超时到期,应该引发自定义错误?
有任何想法吗?
在极少数情况下要使用except:
。这样做会捕获可能很难调试的 任何
异常,并且会捕获包括SystemExit
和在内的异常KeyboardInterupt
,这些异常会使您的程序恼人。
最简单的说,您会发现urllib2.URLError
:
try:
urllib2.urlopen("http://example.com", timeout = 1)
except urllib2.URLError, e:
raise MyException("There was an error: %r" % e)
以下内容应捕获连接超时时引发的特定错误:
import urllib2
import socket
class MyException(Exception):
pass
try:
urllib2.urlopen("http://example.com", timeout = 1)
except urllib2.URLError, e:
# For Python 2.6
if isinstance(e.reason, socket.timeout):
raise MyException("There was an error: %r" % e)
else:
# reraise the original error
raise
except socket.timeout, e:
# For Python 2.7
raise MyException("There was an error: %r" % e)
问题内容: 我最近尝试使用多处理模块(和它的)来加速一个小工具(使用urllib2将请求发送到(非官方)twitter-button-count-url(> 2000 url)并解析其结果)工人池)。我在这里阅读了一些有关多线程(与标准的非线程版本相比,它使整个过程变慢)和多处理的讨论,但是我找不到(可能非常简单)问题的答案: 您可以通过多处理来加速url调用吗,还是不是像网络适配器那样的瓶颈?我
问题内容: 我想使用multiprocessing.Pool,但是multiprocessing.Pool不能在超时后中止任务。我找到了解决方案,并对其进行了一些修改。 主要修改-使用 sys.exit(1) 退出工作进程。它杀死了工作进程并杀死了工作线程,但是我不确定这个解决方案是否很好。当进程因正在运行的作业而终止时,我会遇到哪些潜在的问题? 问题答案: 停止正在运行的作业没有隐含的风险,操作
问题内容: 我试图用一个批量一些 KTable 值,并送他们。似乎30秒钟超出了使用者超时间隔,在此间隔之后,Kafka认为该使用者已失效并释放了分区。 我尝试提高 轮询 和 提交间隔 的频率来避免这种情况: 不幸的是,这些错误仍在发生: (很多) 其次是: 显然,我需要更频繁地将心跳发送回服务器。怎么样? 我的拓扑是: 该 KTable 是关键,每30秒分组值。在 Processor.init(
前言 sender的run 调用done方法,并传入TimeoutException
问题内容: 我打开网址: 我想做的就是以相同的方式连接到我在某处告诉我的代理: 但这也不起作用。 我知道urllib2具有类似代理处理程序的功能,但是我无法回忆起该功能。 问题答案:
问题内容: 我打开网址: 我想做的是用同样的方式连接到我在某处告诉我的代理: 但这也不起作用。 我知道urllib2具有类似代理处理程序的功能,但是我不记得该功能了。 问题答案: