擅长:python、mysql、java
<p>我一点也不知道龙卷风,但我看了一眼,你就不能那样抓住例外。异常是在HTTPConnection()的构造函数中生成的,该构造函数中的大多数代码都已由不同的堆栈上下文包装:</p>
<pre><code> with stack_context.StackContext(self.cleanup):
parsed = urlparse.urlsplit(_unicode(self.request.url))
[...]
</code></pre>
<p>因此,基本上每当在那里生成异常(在您的示例中为gaierro)时,它就已经被捕获并通过self.cleanup处理,从而生成599响应AFAICT:</p>
<pre><code>@contextlib.contextmanager
def cleanup(self):
try:
yield
except Exception, e:
logging.warning("uncaught exception", exc_info=True)
self._run_callback(HTTPResponse(self.request, 599, error=e,
request_time=time.time() - self.start_time,
))
</code></pre>
<p>不确定这是否能回答你的问题。</p>