<p>根据<a href="http://www.tornadoweb.org/documentation/httpclient.html#tornado.httpclient.AsyncHTTPClient.fetch" rel="noreferrer">Tornado documentation</a>:</p>
<p>如果在获取过程中发生错误,则给回调的HTTPResponse具有非None错误属性,该属性包含请求过程中遇到的异常。
您可以调用<code>response.rethrow()</code>在回调中抛出异常(如果有)。</p>
<pre><code>from tornado.httpclient import AsyncHTTPClient
from tornado.httpclient import HTTPRequest
from tornado.stack_context import ExceptionStackContext
from tornado import ioloop
import traceback
def handle_exc(*args):
print('Exception occured')
return True
def handle_request(response):
if response.error is not None:
with ExceptionStackContext(handle_exc):
response.rethrow()
else:
print('Handle request')
http_client = AsyncHTTPClient()
http_client.fetch('http://some123site.com', handle_request)
http_client.fetch('http://google.com', handle_request)
ioloop.IOLoop.instance().start()
</code></pre>
<hr/>
<p>您在控制台上看到的消息只是一个警告(通过<code>logging.warning</code>发送)。它是无害的,但是如果它真的让您感到困扰,请参阅<a href="http://docs.python.org/library/logging.html" rel="noreferrer">logging</a>模块以了解如何过滤它。</p>