python - "Exception"是否捕获所有其他 "Concrete Exceptions"

标签 python python-3.x exception

我在运行 Streaming API 时遇到了 tweepy 问题,但我的问题不仅仅与 tweepy 直接相关。

我遇到了多个异常,我认为我可以暂时“捕获/通过”,作为临时解决方案,直到找出问题所在。

到目前为止,tweepy 已经抛出了 5 个不同的错误(IncompleteRead、ProtocolError、UnicodeDecodeError、AttributeError、TypeError),它们都是由 API 的过滤器产生的,而不是由我获取数据。

它们在回溯中的共同点是:

twitterStream.filter(locations=[-125.22, 31.61, -104.86, 49.0, -104.86, 26.11, -66.94, 49.03])

IncompleteReadProtocolError 与 tweepy 使用的不同包相关。但是 (UnicodeDecodeError, AttributeError, TypeError)Concrete Exceptions

我的问题:

我的假设是否正确? Exception基类可以捕获所有这些(最后 3 个)吗?还是说这是不正确的?

最佳答案

异常状态的文档

All built-in, non-system-exiting exceptions are derived from this class

因此 Exception 基类应该能够捕获这些异常,因为它们是非系统退出的(系统退出异常的一个示例是 SystemExit)。如果您愿意,可以快速测试:

try:
    raise AttributeError
except Exception:
    print("We caught an exception!")

也就是说,盲目捕获 Exception 基类通常被认为是一个坏主意,因为您可能最终会捕获您不希望捕获的异常。

关于python - "Exception"是否捕获所有其他 "Concrete Exceptions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466753/

相关文章:

python - 以向后兼容的方式将 int 转换为 Unicode char

Python 3 : find item in list and answer based on that

java - 线程 "main"java.lang.NumberFormatException : For input string: "3291105000" 中的异常

wcf - 没有 Wait() 的任务的异常处理

php - 如何可靠地识别 PHP 中的特定错误?

python - 调试 : Shuffle deck of cards in Python/random

python - 使用selenium获取不同的属性值

python - 比较数据框中的日期并将值分配给另一个变量

python - 如何使用 Python 在 Airflow DAG 中导入外部脚本?

python - 如果一个列字符串包含在另一个 Python 中,则一对多合并两个数据框