رسالة الخطأ مش مجرد عائق لازم تخفيه هي معلومة بتقولك التنفيذ وقف فين أو إيه القيمة اللي الكود معرفش يتعامل معاها بدل ما تغير سطور كتير مرة واحدة امشي من المعلومة اللي قدامك لسبب محدد
اقرأ نوع الخطأ ومكانه
ال ReferenceError غالبا معناها إن اسم مستخدم مش متاح في السياق وال TypeError ممكن تظهر لما تتعامل مع قيمة بطريقة مش مناسبة لنوعها وال SyntaxError بتدل على مشكلة في صيغة الكود
خد اسم الملف ورقم السطر كنقطة بداية السطر اللي ظهر فيه الخطأ ممكن يكون مكان ظهور النتيجة مش أصل السبب لأن القيمة الغلط ممكن تكون جاية من دالة تانية
function titleLength(article) {
return article.title.length;
}
titleLength({});TypeErrorاسأل عن القيمة الموجودة وقت التنفيذ
المطلوب هنا قياس طول عنوان لكن الكائن مفيهوش title فقراءة length من undefined فشلت قبل تغيير الدالة افحص البيانات اللي وصلت ليها وحدد هل العنوان إجباري ولا ممكن يغيب
const article = {};
console.log(article.title);
console.log(typeof article.title);
console.log(Object.hasOwn(article, "title"));undefined
undefined
falseصلح السبب حسب المطلوب
لو وجود العنوان ضروري متستبدلش الغياب بنص فاضي وتسكت ارفض البيانات برسالة أوضح أما لو العنوان اختياري فعلا فالقيمة البديلة ممكن تكون مناسبة
function titleLength(article) {
if (typeof article?.title !== "string") {
throw new TypeError("Article title must be a string");
}
return article.title.length;
}
console.log(titleLength({ title: "HTML" }));4صغر المثال لحد ما تقدر تعيد المشكلة
جرب نفس الدالة بنفس المدخلات بعيدا عن بقية الشاشة لو المشكلة مستمرة يبقى عندك مثال صغير تقدر تراجعه ولو اختفت دور في مصدر البيانات أو ترتيب التنفيذ
احتفظ بالمثال اللي سبب المشكلة وارجع جربه بعد الإصلاح مع مثال طبيعي علشان متصلحش حالة وتكسر حالة تانية
استخدم أدوات المتصفح لما الطباعة متكفيش
حط Breakpoint قبل السطر اللي بيفشل وراجع القيم والنداءات في Call Stack ولو البيانات جاية من طلب شبكة راجع حالة الطلب ومحتواه في Network ممكن تكون متوقع JSON لكن الخادم رجع صفحة خطأ
متطبعش كلمات مرور أو مفاتيح وصول في سجل مشترك ومتعرضش تفاصيل الخادم الداخلية للزائر استخدم السجل المناسب أثناء التشخيص
غير حاجة واحدة وقارن النتيجة
اكتب توقع بسيط زي العنوان غايب من استجابة الخادم وبعدها اختبره لو التوقع غلط عدل فهمك بدل إضافة شروط عشوائية لكل احتمال
قبل طلب المساعدة جهز رسالة الخطأ وخطوات إعادة المشكلة وأصغر جزء كود لازم لتوضيحها ووضح النتيجة المتوقعة ده بيسهل على غيرك يساعدك وعلى نفسك تفهم المشكلة