الأخطاء
| متى | أمثلة | ما الذي يحدث |
|---|---|---|
| خطأ في الترجمة | خطأ نحوي، أو دالة مضمَّنة غير معروفة، أو عدد وسيطات خاطئ، أو متغير غير معرَّف، أو ثابت مكتوب بشكل خاطئ، أو سلسلة نصية أو تعليق غير مغلق | لا يعمل أي شيء. يُبلَّغ عن الخطأ الأول فقط، مع رقم السطر والعمود. تعرضه وحدة التحكم التشخيصية ومحرر واجهة التكوين. |
| إخفاق دالة مضمَّنة | نوع وسيطة خاطئ، أو موضع بداية سالب لسلسلة فرعية، أو MathRandom(5, 1)، أو اسم زر غير معروف في مربع رسالة، أو محدِّد تقسيم فارغ، أو فتح منفذ تسلسلي فتحه Input.Observer بالفعل | يتوقف الإجراء عند ذلك الاستدعاء. لا تعمل العبارات التي تليه، ويُبلَّغ عن الخطأ بالشكل BuiltinName: السبب. |
| نتيجة هادئة | عوامل على أنواع غير متوافقة، أو القسمة على صفر، أو نافذة فارغة أو مغلقة (يُقرأ موضعها أو حجمها أو DPI الخاص بها على أنه 0)، أو فهرس خارج النطاق، أو ملف غير موجود، أو منفذ تسلسلي لا يُفتح | لا يوجد خطأ. تحصل على 0 أو false أو "" أو -1 أو Window فارغة، ويستمر البرنامج النصي. |
أخطاء الترجمة الشائعة ومعناها:
| ما كتبته | سبب الإخفاق | اكتب بدلًا منه |
|---|---|---|
i++; / i += 1; | لا توجد عوامل زيادة ولا عوامل مركبة | i = i + 1; |
while (x) { … } | while ليست كلمة أساسية، لذا تُقرأ كدالة غير معروفة | حلقة for |
x = n % 2; | لا يوجد % | x = n - (n / 2) * 2; أو n & 1 |
'text' | علامات الاقتباس المفردة ليست محددات للسلاسل النصية | "text" |
r = .5; / r = 1e3; | لا نقطة في البداية، ولا أُسس | 0.5 / 1000.0 |
a = b = 0; | الإسناد ليس تعبيرًا | a = 0; b = 0; |
for (;;), for (i = 0, j = 0; …) | يجب أن يكون كل من التهيئة والخطوة إسنادًا واحدًا | j = 0; for (i = 0; …; i = i + 1) |
print(x) | دالة غير معروفة. أسماء الدوال المضمَّنة دقيقة وحساسة لحالة الأحرف. | UtilityPrint(…) |
y = total + 1; كأول سطر | لم يُسنَد إلى total شيء قبل هذه النقطة | أسنِد إليه أولًا: total = 0; |