requests.exceptions.ProxyError и urllib3.exceptions.ProxyError — разные классы исключений. Общее короткое имя не означает, что один блок except поймает оба.

Для вызова Requests начните с публичного API исключений Requests. Его транспортный адаптер обычно переводит ошибки нижнего уровня в исключения, которые выдаёт Requests. В старых версиях были специфические ошибки обёртывания, поэтому сохраняйте версию библиотеки при неожиданном traceback.

При разборе проверьте модуль исключения, класс и связанную причину. Вложенный MaxRetryError или сбой соединения может сохранить полезные свидетельства о предыдущем этапе прокси.

Не импортируйте старый встроенный путь из исторического обходного решения в современное приложение. Перехватывайте публичное исключение, подходящее текущему вызову, сохраняйте причину для диагностики и отдельно решайте поведение при повторе. Перехват каждого Exception и бесконечное продолжение лишь скрывают исходное несоответствие.

Похожие статьи