requests.exceptions.ProxyError 与 urllib3.exceptions.ProxyError 是不同的异常类。共享一个短名称并不意味着一个 except 子句就能同时捕获两者。

对于 Requests 调用,请从 Requests 的公开异常 API 入手。它的传输适配器通常会把底层失败转换成 Requests 暴露的异常。旧版本存在特定的包装缺陷,因此遇到意外 traceback 时请一并保留库版本。

排查时,请检查异常的模块、类以及链式原因。嵌套的 MaxRetryError 或连接失败可能保留有关先前代理阶段的有用证据。

避免把历史临时方案中的旧 vendored 路径引入现代应用。捕获与当前调用相称的公开异常,为诊断保留原因,并单独决定重试行为。捕获所有 Exception 并无限继续,只会掩盖最初的错配。

相关文章