Đây là khách hàng của tôi đơn giản HTTP cho một số api:Xử lý Sự cố trong Twisted
# -*- coding: utf-8 -*- import settings from twisted.internet import reactor from twisted.web.client import Agent from twisted.web.http_headers import Headers params = { 'url': 'http://api.vk.com/api.php', 'id':260, } def params_for_get(): return '&'.join(["%s=%s" % (key,val) for key, val in params.items()]) agent = Agent(reactor) d = agent.request( 'GET', "%s?%s" % (settings.APPLICATION_URL, params_for_get()), Headers({'User-Agent': ['Twisted Web Client Example'], 'Content-Type': ['text/x-greeting']}), '') def cbResponse(*args, **kwargs): print args, kwargs print 'Response received' def cbShutdown(ignored): reactor.stop() def cbError(failure): print type(failure.value), failure # catch error here d.addCallbacks(cbResponse, cbError) d.addBoth(cbShutdown) reactor.run()
Khi tôi bắt đầu chương trình, tôi bắt lỗi:
<class 'twisted.web._newclient.RequestGenerationFailed'> [Failure instance: Traceback (failure with no frames): <class 'twisted.web._newclient.RequestGenerationFailed'>: [<twisted.python.failure.Failure <type 'exceptions.AttributeError'>>]
]
Nhưng tôi không biết, mà lỗi này đã xảy ra. Tôi có thể biết điều đó bằng cách nào? Tôi đã cố gắng hiển thị truy nguyên cho
<twisted.python.failure.Failure <type 'exceptions.AttributeError'>>
nhưng tôi không thể nhận được.
Bạn có thể muốn thử "getErrorMessage()" trên trường hợp lỗi để xem nếu nó cung cấp thêm một chút thông tin. – Rakis
Thực tế là bạn nhận được một thông báo lỗi như vậy ở đây là một lỗi trong Twisted. Xem http://twistedmatrix.com/trac/ticket/5310 – Glyph