أخطاء البرمجة هي عيوب في كيفية عمل التطبيقات. يشار إليها عادة باسم "الأخطاء" ، ومن هنا جاء مصطلح "التصحيح".

بصفتك مطورًا ، ستجد نفسك تقضي الكثير من الوقت في إصلاح الأخطاء. هناك عدد من الأخطاء التي ستواجهها شائعة ، ومعرفتك بها سيساعدك على منعها في المقام الأول.

إليك ما تحتاج إلى معرفته بشأن هذه الأنواع الثلاثة من أخطاء البرمجة وكيف يمكنك الحماية منها:

1. أخطاء وقت التشغيل أو التنفيذ

هذه هي الأخطاء التي تحدث أثناء تنفيذ البرنامج (أي في وقت التشغيل). قد تتسبب في عدم تنفيذ البرنامج بشكل صحيح أو حتى عدم تشغيله على الإطلاق.

تتسبب أخطاء وقت التشغيل الفادحة في توقف تنفيذ البرنامج بينما تؤدي الأخطاء غير الفادحة إلى إنهاء التنفيذ ، ولكن بنتائج غير صحيحة.

خطأ وقت التشغيل النموذجي هو قسمة على خطأ صفر. من المفترض أن تؤدي القسمة على الصفر إلى نتيجة لا نهائية ، لكن لسوء الحظ ، لم نتوصل إلى بنية بيانات يمكنها تخزين هذا القدر من البيانات حتى الآن.

لذلك ، تؤدي القسمة على الصفر إلى استثناء حسابي في مترجم Java.

2. أخطاء المنطق

تحدث الأخطاء المنطقية بسبب التفكير الخاطئ. من المهم ملاحظة أن هذه الأخطاء لا ترجع بالضرورة إلى "خطأ" ارتكبته. قد تحدث لأنك لم تفكر في سيناريو تنفيذ معين.

instagram viewer

هم الأكثر صعوبة في التعامل معها. هذا لأن التعليمات البرمجية التي بها خطأ منطقي هي برنامج صالح باللغة التي تمت كتابتها بها. لذلك ، لن يؤدي ذلك إلى حدوث خطأ في المترجم. المشكلة الوحيدة هي أنه ينتج نتائج غير صحيحة.

سيؤدي الخطأ المنطقي الفادح إلى توقف تنفيذ البرنامج بينما يسمح الخطأ غير الفادح بمواصلة تنفيذ البرنامج ولكن بنتائج غير صحيحة.

الخطأ المنطقي الشائع هو خطأ واحد تلو الآخر. يحدث هذا عادةً عند ذكر حالة استمرار الحلقة. لنفترض أنك تريد طباعة أول خمسة أرقام مربعة.

متعلق ب: أخطاء البرمجة والترميز الأكثر شيوعًا

قد ينتهي بك الأمر بكتابة الكود أدناه في حلقة for الخاصة بك ، والتي تعطي أول أربعة أرقام فقط.

لـ (int x = 1 ؛ × <5 ؛ x ++) {System.out.ln (x * x) ؛ }

لتجنب مثل هذا الخطأ ، يمكنك بدلاً من ذلك استخدام علامة <=. يعد استخدام علامة أقل من أو يساوي أكثر بديهية ، وبالتالي سيكون من غير المرجح أن تخلط بين عملياتك العلائقية.

خطأ منطقي شائع آخر هو ترك كلا قوسين من بيان التحكم ومع ذلك فإن الجسم أدناه يشكل كتلة من الكود تحت سيطرته.

انظر للمثال ادناه. يتحقق مما إذا كان الرقم العشوائي فرديًا أم زوجيًا ، ثم يقوم بطباعة الإخراج.

استيراد java.util. عشوائي؛
فئة عامة OddEven {
العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {
رقم عشوائي Genenerator = new Random () ؛
int randomNumber = numberGenerator.nextInt (10) ؛
إذا ((رقم عشوائي٪ 2) == 0)
System.out.println ("هذا هو رقم حظك:" + randomNumber) ؛
System.out.println ("الرقم" + randomNumber + "الذي حصلت عليه هو زوجي") ؛ // السطر 11
}
}

سطر الإخطار 11. سيتم تنفيذه دائمًا بغض النظر عما إذا كان الرقم العشوائي الذي حصلت عليه زوجيًا أم لا. سيكون هذا بالطبع خطأ منطقيًا عندما يكون الرقم الذي حصلت عليه فرديًا.

بما في ذلك كليهما System.out.println عبارات بين الأقواس {} ، لتتجنب هذا.

متعلق ب: خطوات تطوير البرمجيات يجب أن يعرفها كل المبرمجين

خطأ منطقي آخر يجب البحث عنه هو عدم توفير شرط إنهاء الحلقة. سينتج عن ذلك حلقة لا نهائية ولن ينتهي برنامجك من التنفيذ أبدًا.

3. أخطاء في بناء الجملة أو وقت الترجمة

هذه أخطاء ناتجة عن انتهاكات لقواعد لغة Java. وتسمى أيضًا أخطاء وقت التجميع أو الترجمة.

هذه هي أسهل الأخطاء التي يجب معالجتها لأن المترجم الخاص بك سيقوم دائمًا بالإبلاغ عنها. حتى أن العديد من المجمعين يمضون قدمًا ويخبروك بالسطر الموجود في التعليمات البرمجية الخاصة بك حيث يوجد الخطأ.

التسامح مع الخطأ

من الطرق العملية للتعامل مع مشكلات البرامج استخدام التسامح مع الخطأ من خلال تضمين معالجة الاستثناءات. يمكنك استخدام حاول.. اصطياد تصريحات لتحقيق ذلك.

لمتابعة تنفيذ البرنامج بغض النظر عن الاستثناء الذي تم اكتشافه في ملف قبض على حظر ، استخدم أخيرا بيان.

الصيغة هي:

جرب {// Block للتنفيذ إذا لم تكن هناك مشكلات} 
catch (استثناء هـ) {
تم العثور على // حظر للتعامل مع المشكلات
} أخيرًا {// حظر للتنفيذ بعد الالتقاط
}

انظر إلى مثال الكود أدناه:

استيراد java.util. عشوائي؛
أرقام عشوائية للفئة العامة {
العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {
رقم عشوائي Genenerator = new Random () ؛
يحاول{
لـ (عداد int = 10 ؛ عداد <= 100 ؛ عداد ++) {
int randomNumber = numberGenerator.nextInt (10) ؛
System.out.println (عداد / randomNumber) ؛ } }
catch (استثناء هـ) {
System.out.println ("مصادفة القسمة على الصفر!")؛
}
أخيرا{
System.out.println ("حصلت على قيمة لانهائية") ؛}
}
}

يُنشئ البرنامج أعلاه رقمًا عشوائيًا بين صفر و 10 ، ثم يستخدم هذا الرقم لتقسيم قيمة العداد بين 10 و 100. إذا تمت مصادفة عملية القسمة على الصفر ، فسيقوم النظام بالتقاط الخطأ وعرض رسالة.

كن أفضل في البرمجة

من الجيد إضافة تعليقات إلى التعليمات البرمجية الخاصة بك. سيساعدك هذا على تمشيط ملفاتك بسهولة عندما يكون لديك خطأ. خطوة واحدة صغيرة ولكنها مهمة جدًا لتطوير ممارسات تشفير قوية.

مع ممارسات الترميز الجيدة ، يجب أن تكون قادرًا على تجنب أخطاء البرمجة الشائعة.

بريد إلكتروني
ما هو الترميز وكيف يعمل؟

مرتبك بشأن الترميز؟ لا تفهم البرمجة؟ إليك ما تحتاج لمعرفته حول اللبنات الأساسية للبرمجة.

اقرأ التالي

مواضيع ذات صلة
  • برمجة
  • جافا
  • نصائح الترميز
عن المؤلف
جيروم ديفيدسون (14 مقالة منشورة)

جيروم كاتب في MakeUseOf. يغطي مقالات عن البرمجة و Linux. إنه أيضًا متحمس للعملات المشفرة ويحتفظ دائمًا بعلامات تبويب في صناعة التشفير.

المزيد من Jerome Davidson

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

خطوة أخرى أيضا…!

يرجى تأكيد عنوان بريدك الإلكتروني في البريد الإلكتروني الذي أرسلناه لك للتو.

.