requests.exceptions.ProxyError e urllib3.exceptions.ProxyError são classes de exceção diferentes. Compartilhar um nome curto não faz com que uma cláusula except capture ambas.

Para uma chamada de Requests, comece pela API pública de exceções do Requests. Seu adaptador de transporte normalmente traduz falhas de nível inferior nas exceções expostas pelo Requests. Versões mais antigas tinham bugs de encapsulamento específicos, portanto guarde a versão da biblioteca junto a um traceback inesperado.

Ao investigar, examine o módulo, a classe e a causa encadeada da exceção. Um MaxRetryError aninhado ou uma falha de conexão pode reter evidências úteis sobre o estágio anterior do proxy.

Evite importar para uma aplicação moderna um caminho antigo embutido de uma solução histórica. Capture a exceção pública adequada à chamada atual, preserve a causa para diagnóstico e decida o comportamento de nova tentativa separadamente. Capturar toda Exception e continuar para sempre apenas esconde a incompatibilidade original.

Artigos relacionados