الأغلى ليس الخطأ البرمجي (bug)، بل نص الخطأ الذي يُضلّك عن اتجاه التصحيح الصحيح.
أبلغ نظامنا الخلفي لمدة يومين بـ «لا يمكن قراءة بيانات الخادم»، وقمنا بالتحقق من الخدمة الخلفية بالكامل — وكل السجلات تظهر رمز الحالة 200. أما الجاني الحقيقي فهو البرنامج النصي القديم الذي يعمل في المتصفح، والذي يتعطل عند تصيير البيانات الجديدة، بينما catch تُصنَّف جميع الاستثناءات على أنها «لا يمكن قراءة بيانات الخادم». تقوم هذه الأداة بعمليتين: أولًا، الصق كتل catch الموجودة لديك لتتحقق مما إذا كانت تُبلغ كذبًا عن الأعطال؛ ثانيًا، تولِّد نسخة جديدة من الكود تُميِّز بدقة بينفشل الشبكة / تعطل العرض / انتهاء صلاحية المفتاح / انتهاء المهلةالكود.
—
| الواقع الفعلي | ما يجب الإبلاغ عنه | تكلفة الإبلاغ عن الخطأ |
|---|---|---|
| فشل الشبكة / الاتصال | اتصال الشبكة غير مستقر، وقد أُعيد المحاولة N مرة؛ سيتم عرض ذاكرة التخزين المؤقت المحلية أولاً. | إبلاغ الخطأ على أنه عطل في الخادم → التحقق من خدمة الخادم دون جدوى |
| وصلت البيانات لكن العرض تعطّل | نسخة النص البرمجي منتهية الصلاحية؛ يُرجى الضغط على Ctrl+F5 لإعادة التحميل القسري. | يُبلَغ كعطل في الخادم → انحرفت التوجّهات لمدة يومين |
| 401 / 403 | انتهت صلاحية المفتاح، يُرجى تحديث الصفحة وإعادة تسجيل الدخول | إذا طلب من المستخدم النقر باستمرار على "إعادة المحاولة"، فلن تتحسن الحالة أبدًا |
| انتهاء المهلة (AbortError) | انتهاء مهلة الواجهة، يُرجى النقر على تحديث بعد قليل ثم إعادة المحاولة | خلطها مع عبارة «تعطل الخادم» |
| تنسيق البيانات فارغ / حقول ناقصة | وصلت البيانات ولكن الحقل X ناقص | العرض الصامت كقيمة 0 أخطر من إظهار خطأ |
1 · استخدام جملة واحدة من `catch` للإبلاغ عن جميع الأخطاء.تُصنَّف حالات تعطل التصيير وفشل الشبكة وانتهاء صلاحية المفتاح والمهلة الزمنية المنتهية جميعها على أنها «لا يمكن قراءة بيانات الخادم»، وقد أمضينا يومين في البحث عن مشاكل غير موجودة على الخادم.
2 · التعديل هو التوجيه إلى مسارات مختلفة، وليس إضافة سجلات التتبع.try يحتوي فقط على استرجاع البيانات، بينما يتم تغليف التصيير في طبقة منفصلة try، وافصل الجملتين في الرسائل — يمكن تحديد اتجاه التصحيح في جملة واحدة فقط.
٣ · تكون البيانات الاحتياطية أكثر أهمية من الإبلاغ عن الخطأ.عند الفشل الكامل، يتم استخدام آخر بيانات جيدة مخزَّنة في localStorage لتنفيذ التصيير، مع وضع علامة عليها على أنها «البيانات المخبأة · منذ N دقيقة»، بحيث يرى المستخدم دائمًا محتوى ما، بدلًا من أن يواجه جدار أخطاء.
4 · لا تقوم بإعادة المحاولة عند رموز الاستجابة 401/403.إعادة المحاولة ثلاث مرات عند خطأ المفتاح لا تفعل سوى جعل المستخدم ينتظر لبضع ثوانٍ إضافية؛ أخبره مباشرةً بإعادة تحميل الصفحة وتسجيل الدخول من جديد