Requests ProxyError и urllib3 ProxyError
Перехватите исключение, которое выдаёт HTTP-библиотека, использованная для вызова, и изучите вложенные причины, не полагаясь только на имя класса.
requests.exceptions.ProxyError и urllib3.exceptions.ProxyError — разные классы исключений. Общее короткое имя не означает, что один блок except поймает оба.
Для вызова Requests начните с публичного API исключений Requests. Его транспортный адаптер обычно переводит ошибки нижнего уровня в исключения, которые выдаёт Requests. В старых версиях были специфические ошибки обёртывания, поэтому сохраняйте версию библиотеки при неожиданном traceback.
При разборе проверьте модуль исключения, класс и связанную причину. Вложенный MaxRetryError или сбой соединения может сохранить полезные свидетельства о предыдущем этапе прокси.
Не импортируйте старый встроенный путь из исторического обходного решения в современное приложение. Перехватывайте публичное исключение, подходящее текущему вызову, сохраняйте причину для диагностики и отдельно решайте поведение при повторе. Перехват каждого Exception и бесконечное продолжение лишь скрывают исходное несоответствие.