我的代码将流式传输来自reddit的新提交(使用PRAW
),并且我不希望程序在连接断开时停止运行,因此我将代码包装在try/except
块中以进行处理ConnectionError
异常可以完成工作,但是当代码尝试恢复流式传输时,似乎发生器(submissions
)已退出,并抛出了StopIteration
错误。所以我的问题是:有没有办法在生成器抛出ConnectionError
之前保存生成器的状态,以便代码不断尝试恢复直到连接返回而又不修改生成器函数?
代码如下:
import praw
import prawcore
import requests
reddit = praw.Reddit()
subreddit = reddit.subreddit('askreddit')
submissions = subreddit.stream.submissions(skip_existing=True, pause_after=0)
while True:
try:
print(next(submissions))
except prawcore.exceptions.RequestException as re:
if isinstance(re.original_exception,
requests.exceptions.ConnectionError):
print('Connection Error')
使用: