أخطاء وسيط Spring WebClient: المعالجة التفاعلية مقابل التسجيل
ميّز بين إشارة الخطأ التفاعلية في WebClient وتسجيل طبقة النقل ومعالجة حالة HTTP أثناء فشل الوسيط.
يمكن لطبقة النقل أن تسجّل فشل اتصال الوسيط في السجل بينما يتلقى التطبيق الخطأ التفاعلي ويعالجه في الوقت نفسه. ولا يثبت سجل السجل بمفرده أن معالج التطبيق قد تم تجاوزه.
تتبَّع إشارة الخطأ في السلسلة التي تُشترك فعلاً. فـ try/catch حول شيفرة تكتفي ببناء Mono يخص نطاقاً مختلفاً عن معالجة فشل شبكي لاحق.
| المعامل | الأثر |
|---|---|
| doOnError | ينفّذ أثراً جانبياً بينما يستمر الخطأ |
| onErrorMap | يحوّل خطأً إلى خطأ آخر |
| onErrorResume | ينتقل إلى ناشر بديل |
اختر السلوك الذي يحتاجه التطبيق. فتسجيل مقياس لا يتطلب إرجاع محتوى ناجح مزيف. ويجب أن تكون الاستجابة البديلة نتيجة تطبيق مقصودة، لا وسيلة لإخفاء مسار فاشل.
ميّز أيضاً بين استثناءات طبقة النقل وحالات خطأ HTTP المستلمة. فقد يفشل اتصال الوسيط قبل وجود استجابة عادية من الوجهة، لذا قد لا يجد معالج حالة HTTP ما يفحصه. احتفظ بسبب WebClientRequestException عند تشخيص الفشل الأدنى.
لا تعدّل التسجيل إلا بعد فهم النتيجة. فإيقاف مسجّل طبقة النقل بالكامل قد يزيل أدلة لازمة لمهلة لاحقة أو مشكلة TLS أو فشل مصادقة، من دون أن يغيّر سلوك خط الأنابيب التفاعلي.