requests.exceptions.ProxyError و urllib3.exceptions.ProxyError کلاس‌های استثنای متفاوتی هستند. داشتن یک نام کوتاه مشترک باعث نمی‌شود یک شرط except هر دو را بگیرد.

برای فراخوانی Requests، از API عمومی استثناهای Requests شروع کنید. آداپتور انتقال آن معمولاً خطاهای سطح پایین‌تر را به استثناهایی که Requests آشکار می‌کند ترجمه می‌کند. نسخه‌های قدیمی باگ‌های پوشش خاصی داشتند، پس هنگام دیدن traceback غیرمنتظره نسخه کتابخانه را نگه دارید.

هنگام بررسی، ماژول، کلاس و علت زنجیره‌ای استثنا را ببینید. یک MaxRetryError تودرتو یا شکست اتصال می‌تواند شواهد مفیدی درباره مرحله قبلی پراکسی نگه دارد.

از واردکردن یک مسیر قدیمی بسته‌بندی‌شده از یک راه‌حل تاریخی به برنامه‌ای مدرن پرهیز کنید. استثنای عمومی مناسب فراخوانی فعلی را بگیرید، علت را برای عیب‌یابی نگه دارید و رفتار تلاش مجدد را جداگانه تعیین کنید. گرفتن هر Exception و ادامه ابدی تنها ناسازگاری اصلی را پنهان می‌کند.

مقالات مرتبط