أوامر تصحيح أخطاء تحدد الموقع فعلاً

Prompt شرح الـ Traceback

4 دقيقة للقراءة

لما تقابل exception type مش متعوّد عليه، الإغراء إنك تلصق الـ traceback كله وتقول "إيه الغلط؟" ده شغّال، بس الرد عادة طويل عام. بتجيب فقرة عن exception class، فقرة عن أسباب محتملة، وتلات فقرات "ممكن كمان تجرب…"

Prompt أضيق بيدّيك اللي محتاجه بالظبط: يعني إيه الـ error، والسبب الأرجح في كودك إنت.

I get this error and I do not understand it. Tell me in 2 sentences what it actually means, then give the most likely cause given the code.

Code:

def average(nums):
    return sum(nums) / len(nums)

print(average([]))

Traceback:

Traceback (most recent call last):
  File "x.py", line 4, in <module>
    print(average([]))
  File "x.py", line 2, in average
    return sum(nums) / len(nums)
ZeroDivisionError: division by zero

Claude Sonnet 4.5 رجّع:

What it means: You're trying to divide a number by zero, which is mathematically
undefined and causes an error. Python cannot perform division when the
denominator (bottom number) is zero.

Most likely cause: You passed an empty list [] to the average() function, so
len(nums) equals 0, causing division by zero when calculating sum(nums) / len(nums).

Captured from Claude Sonnet 4.5 (claude-sonnet-4-5) on 2026-04-27. Re-runs may differ slightly.

فقرتين قصيرتين. الأولى معرفة تقدر تعيد استخدامها — ZeroDivisionError يعني إيه. التانية محددة — الـ call path اللي طلّع الخطأ بالظبط. ده الشكل اللي إنت عايزه في debugging سريع.

شجرة القرار اللي بيمشي فيها الموديل لما بيشرح traceback صح:

بنية الـ prompt هنا تستاهل تحفظها كـ template:

I get this error and I do not understand it. Tell me in 2 sentences what
it actually means, then give the most likely cause given the code.

Code:
<paste minimal reproducer>

Traceback:
<paste full traceback, no truncation>

Constraint "in 2 sentences" بيشتغل فعلاً. من غيره، بتجيب مقال. صياغة "most likely cause given the code" بتعمل أكتر — بتجبر الموديل يجمع المعرفة العامة عن الـ error مع الكود المحدد، بدل ما يديك نصيحة عامة بس. الجمع ده هو اللي زميل خبرة هيعمله جنبك على مكتبك.

نمطين غلط لازم تتجنبهم:

  1. لصق آخر سطر بس من الـ traceback. السطر اللي فوقه (File "x.py", line 4, in <module>) هو اللي بيقول للموديل الـ call أصله منين. من غير الـ call chain، الموديل بيخمّن بس.
  2. سؤال "إزاي أصلّح ده؟" قبل "ده يعني إيه؟" Prompt الإصلاح مكانه في turn منفصل. خلط التشخيص بالعلاج بيدّيك fix ممكن يكون مش لحالتك الحقيقية.

لما يبقى عندك التشخيص، الـ prompt الجاي يبقى: "Given that diagnosis, what is the smallest change to the function that prevents this for empty input?" ده prompt منفصل أصغر بمخرج واحد للمراجعة.

التالي: كتابة prompts بتقول "ده اللي المفروض يحصل، مش اللي بيحصل." :::

اختبار

الوحدة 2: Prompts الـ Debugging

خذ الاختبار
هل كان هذا الدرس مفيدًا؟

سجّل الدخول للتقييم

نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.