我在运行Streaming API时遇到了tweepy问题,但我的问题并不仅仅与tweepy直接相关。
我一直有多个例外,我认为我可以"抓住/通过"目前,作为一种临时解决方案,直到我找到问题所在。
截至目前,tweepy已经抛出了5个不同的错误(IncompleteRead, ProtocolError, UnicodeDecodeError, AttributeError, TypeError)
,而且这些错误全部来自API的过滤器,而不是来自我获取数据。
他们在Traceback中的共同点是:
twitterStream.filter(locations=[-125.22, 31.61, -104.86, 49.0, -104.86, 26.11, -66.94, 49.03])
IncompleteRead
和ProtocolError
与tweepy使用的不同软件包相关。但(UnicodeDecodeError, AttributeError, TypeError)
是Concrete Exceptions。
我的问题:
我是否可以假设Exception基类可以捕获所有这些(最后3个)?或者这是不正确的?
答案 0 :(得分:1)
异常状态的文档
所有内置的,非系统退出的异常都来自此类
所以Exception基类应该能够捕获那些,因为它们是非系统退出的(系统退出异常的一个例子是SystemExit)。如果您愿意,可以快速测试:
try:
raise AttributeError
except Exception:
print("We caught an exception!")
也就是说,盲目地捕获异常基类通常被认为是一个坏主意,因为你可能最终会捕获你不想要的异常。