Python-异常使“连接异常终止”-如何跳过它并继续

所以基本上我正在使用有时在其中输入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',))

那么它应该打印错误。


我需要做些什么来使其打印其他错误,而只是继续以中止连接而不打印它呢?


撒科打诨
浏览 753回答 3
3回答

幕布斯7119047

您可以使用以下命令捕获RemoteDisconnected异常:try:    #your code hereexcept requests.exceptions.ConnectionError as e:    passexcept 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尽管要小心地悄悄捕获异常,但稍后可能会通过停止确定问题的真正原因而导致问题。

30秒到达战场

您可以尝试以下方法:if str(e) != 'Connection aborted.' :    logger.error(e)但是,由于许多不同的原因,连接可能会中止,您可能需要在if语句,检查e.reason或其他可用字段中添加其他检查。

HUWWW

您应该将RemoteDisconected与其他例外分开:from http.client import RemoteDisconnected    try:   ...except RemoteDisconnected:    continueexcept 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python