因此,基本上,我使用的请求有时是在其中输入URL并给我一个错误:
('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
这很好,当我再次发出新请求或现在我像这样睡觉时:
except Exception as e:
logger.error(e)
randomtime = random.randint(1,5)
logger.warn('ERROR - Retrying again website %s, retrying in %d secs' % (url, randomtime))
time.sleep(randomtime)
continue
我想做的是,每当此错误再次出现为ERROR时-我只想基本上“跳过”它,这意味着它不应该给我打印出来,但是如果出现另一个错误,则为不是
('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
然后它将显示错误。
我需要做些什么才能使其打印其他错误,而只是继续中止连接而不打印它?
答案 0 :(得分:2)
您可以使用以下方法捕获RemoteDisconnected异常:
try:
#your code here
except requests.exceptions.ConnectionError as e:
pass
except Exception as e:
logger.error(e)
randomtime = random.randint(1,5)
logger.warn('ERROR - Retrying again website %s, retrying in %d secs' % (url, randomtime))
time.sleep(randomtime)
continue
尽管要谨慎地捕获异常,但稍后可能会阻止您确定问题的真正原因,从而可能导致问题。
答案 1 :(得分:1)
您可以尝试以下方法:
7
但是,由于许多不同的原因,连接可能会中止,您可能想在if str(e) != 'Connection aborted.' :
logger.error(e)
语句中添加其他检查,检查if
或其他可用字段。
答案 2 :(得分:1)
除了RemoteDisconected之外,您应该与其他例外分开:
from http.client import RemoteDisconnected
try:
...
except RemoteDisconnected:
continue
except Exception as e:
logger.error(e)
randomtime = random.randint(1,5)
logger.warn('ERROR - Retrying again website %s, retrying in %d secs' % (url, randomtime))
time.sleep(randomtime)
continue