requests.exceptions.ProxyError i urllib3.exceptions.ProxyError to różne klasy wyjątków. Wspólna krótka nazwa nie sprawia, że jedna klauzula except przechwyci oba.

W przypadku wywołania Requests zacznij od publicznego API wyjątków Requests. Jego adapter transportowy zwykle tłumaczy błędy niższego poziomu na wyjątki udostępniane przez Requests. Starsze wersje miały konkretne błędy opakowywania, więc zachowaj wersję biblioteki przy nieoczekiwanym tracebacku.

Podczas analizy sprawdź moduł, klasę i powiązaną przyczynę wyjątku. Zagnieżdżony MaxRetryError lub błąd połączenia może zachować przydatne dowody dotyczące wcześniejszego etapu proxy.

Unikaj importowania do nowoczesnej aplikacji starej ścieżki vendored z historycznego obejścia. Przechwyć publiczny wyjątek odpowiedni dla bieżącego wywołania, zachowaj przyczynę do diagnostyki i osobno zdecyduj o zachowaniu ponawiania. Przechwytywanie każdego Exception i trwanie w nieskończoność tylko ukrywa pierwotną niezgodność.

Powiązane artykuły