Я хочу знать, почему в этой функции:Python BadYieldError: дали неизвестный объект HTTPError ('HTTP 599: Соединение закрыто',)
@tornado.gen.engine
def check_status_changes(netid, sensid):
como_url = "".join(['http://131.114.52:44444/ztc?netid=', str(netid), \
'&sensid=', str(sensid), '&start=-5s&end=-1s'])
http_client = AsyncHTTPClient()
response = yield tornado.gen.Task(http_client.fetch, como_url)
if response.error:
raise Exception(response.error)
когда есть response.error, я получаю ошибку в заголовке ... что я должен уступить, чтобы поймать возвращаемое значение в другой функции?
Я бы после того, как сделать что-то вроде:
try:
periodic = tornado.ioloop.PeriodicCallback(check_status_changes(netid, sensid), 5000)
value = periodic.start()
print("Secondo")
print value
except:
print("Quarto")
periodic.stop()
self.finish()
return
else:
Я не знаю ... Я бы просто сравнить возвращаемое значение с другой ....
Спасибо.
Почему бы не сделать исключение вместо этого? Затем обрабатывайте исключение отдельно у потребителя этого генератора. –
Как я могу это сделать? Я не могу создать исключение Bad Yield ... – sharkbait
Создайте собственное исключение? Вы можете поднять * любое исключение *, которое вам нравится. –