requests.exceptions.ProxyError และ urllib3.exceptions.ProxyError เป็นคลาสข้อยกเว้นที่ต่างกัน การมีชื่อสั้นเหมือนกันไม่ได้ทำให้เงื่อนไข except เดียวจับได้ทั้งสอง

สำหรับการเรียก Requests ให้เริ่มจาก API ข้อยกเว้นสาธารณะของ Requests อะแดปเตอร์ขนส่งมักแปลงความล้มเหลวระดับล่างเป็นข้อยกเว้นที่ Requests เปิดเผย เวอร์ชันเก่ามีบั๊กการห่อหุ้มเฉพาะ ดังนั้นเก็บเวอร์ชันไลบรารีไว้เมื่อพบ traceback ที่ไม่คาดคิด

เมื่อตรวจสอบ ให้ดูโมดูล คลาส และสาเหตุที่เชื่อมโยงของข้อยกเว้น MaxRetryError ที่ซ้อนอยู่หรือความล้มเหลวในการเชื่อมต่ออาจเก็บหลักฐานที่เป็นประโยชน์เกี่ยวกับขั้นตอนพร็อกซีก่อนหน้า

หลีกเลี่ยงการนำเข้าเส้นทาง vendored เก่าจากวิธีแก้ปัญหาในอดีตเข้าสู่แอปพลิเคชันสมัยใหม่ จับข้อยกเว้นสาธารณะที่เหมาะกับการเรียกปัจจุบัน รักษาสาเหตุไว้เพื่อการวินิจฉัย และตัดสินพฤติกรรมการลองใหม่แยกต่างหาก การจับทุก Exception แล้วดำเนินต่อไปไม่สิ้นสุดเพียงแต่ซ่อนความไม่ตรงกันเดิม

บทความที่เกี่ยวข้อง