تم فحصه مقابل استثناء لم يتم التحقق منه: الفرق والمقارنة

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

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

الوجبات السريعة الرئيسية

  1. يتحقق المترجم من الاستثناءات التي تم التحقق منها أثناء وقت الترجمة ويحتاج إلى معالجتها بواسطة المبرمج باستخدام كتلة try-catch أو رميات الكلمة الأساسية ، بينما تحدث الاستثناءات غير المحددة في وقت التشغيل ولا تحتاج إلى معالجتها.
  2. تُستخدم الاستثناءات المحددة للأخطاء القابلة للاسترداد، مثل عدم العثور على الملف، بينما تُستخدم الاستثناءات غير المحددة للأخطاء غير القابلة للاسترداد، مثل استثناءات نفاد الذاكرة أو استثناءات المؤشر الفارغ.
  3. الاستثناءات التي تم التحقق منها هي جزء من توقيع الأسلوب ، بينما الاستثناءات التي لم يتم التحقق منها ليست كذلك.

فحص مقابل استثناء لم يتم التحقق منه

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

فحص مقابل لم يتم التحقق منه

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

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

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

جدول المقارنة

معلمات المقارنةاستثناء محدداستثناء غير محدد
تعريفالاستثناءات التي تم التحقق منها هي تلك التي يجب القبض عليها ومعالجتها بواسطة عبارات الشيكات ().لا يجب أن يتم القبض على الاستثناءات التي لم يتم التحقق منها أو التعامل معها على الإطلاق.
ظهوريجب أن تعالج كتلة catch الاستثناءات المحددة أثناء وقت الترجمة. الاستثناءات غير المعلنة ، والمعروفة أيضًا باسم استثناءات وقت التشغيل ، هي استثناءات لم يتم التحقق منها.
معالجة الأخطاءيوقف الاستثناء المحدد تشغيل البرنامج حتى يحاول اكتشاف خطأ أو خطأ. تقع على عاتق المبرمج مسؤولية التأكد من عدم حدوث هذه الأخطاء.
فئات الاستثناءلديها فصول استثنائية.لا تحتوي على أي فصول استثنائية ، أو أنها ليست جزءًا رئيسيًا من فصول استثنائية.
مثالOutOfMemoryError و NullPointerException و StackOverflowError.IndexOutOfBoundsException

ما هو الاستثناء المحدد؟

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

اقرأ أيضا:  بينتيريست و StumbleUpon: الفرق والمقارنة

هذا يعني أن الكود الذي يتبع تعليمة الرمي لن يتم تنفيذه إذا لم تعالج كتلة catch الاستثناء.

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

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

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

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

يوفر تتبع المكدس معلومات لكل استدعاء أسلوب بالترتيب الذي تم استدعاؤه. يسمح هذا للمبرمج بالعثور على مكان حدوث استثناء في الكود أو مكان حدوث استثناء في تدفق تنفيذ الكود.

ما هو استثناء لم يتم التحقق منه؟

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

يمكن التخلص من الاستثناءات التي لم يتم التحقق منها من خلال ممارسات التصميم والتشفير الدقيقة. ومع ذلك ، فإن جميع الاستثناءات باستثناء NullPointerException في كود Java تعتبر غير محددة.

لا يجب أن يتم القبض على الاستثناءات التي لم يتم التحقق منها أو التعامل معها على الإطلاق.

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

اقرأ أيضا:  5.1 مقابل 7.2 الصوت المحيطي: الفرق والمقارنة

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

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

من المقبول تمامًا أن يقرأ التطبيق نفس البيانات مرتين على خيطين مختلفين دون أن يكون له أي آثار سلبية على أداء النظام أو ثباته.

الاختلافات الرئيسية بين الاستثناءات التي تم التحقق منها والتي لم يتم التحقق منها

  1. الاستثناءات التي تم التحقق منها هي تلك التي يجب أن يتم القبض عليها ومعالجتها بواسطة عبارات الشيكات () ، في حين أن الاستثناءات التي لم يتم التحقق منها يجب ألا يتم القبض عليها أو التعامل معها على الإطلاق.
  2. يجب معالجة الاستثناءات التي تم التحقق منها بواسطة كتلة catch أثناء وقت الترجمة ، في حين أن استثناءات Uncaught ، والمعروفة أيضًا باسم استثناءات وقت التشغيل ، هي استثناءات لم يتم التحقق منها.
  3. يوقف الاستثناء المحدد تشغيل البرنامج حتى يحاول اكتشاف خطأ أو خطأ ، في حين أن الاستثناءات غير المحددة هي مسؤولية المبرمج للتأكد من عدم حدوث هذه الأخطاء أبدًا.
  4. يحتوي Checked Exception على فئات استثنائية ، في حين أن الاستثناءات التي لم يتم التحقق منها لا تحتوي على أي فئات استثنائية أو أنها ليست جزءًا رئيسيًا من الفئات الاستثنائية.
  5. مثال على استثناء محدد سيكون OutOfMemoryError و NullPointerException و StackOverflowError ، بينما مثال على استثناء غير محدد سيكون IndexOutOfBoundsException.

مراجع حسابات

  1. https://ieeexplore.ieee.org/abstract/document/4343929/
  2. https://link.springer.com/article/10.1023/A:1010020917337

آخر تحديث: 11 يونيو 2023

النقطة 1
طلب واحد؟

لقد بذلت الكثير من الجهد في كتابة منشور المدونة هذا لتقديم قيمة لك. سيكون مفيدًا جدًا بالنسبة لي ، إذا كنت تفكر في مشاركته على وسائل التواصل الاجتماعي أو مع أصدقائك / عائلتك. المشاركة هي ♥ ️

8 أفكار حول "الاستثناء المحدد مقابل الاستثناء غير المحدد: الفرق والمقارنة"

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

    رد
  2. يعد شرح المقالة للاستثناءات المحددة بأنها أخطاء قابلة للاسترداد، مثل عدم العثور على الملف، والاستثناءات التي لم يتم التحقق منها كونها أخطاء غير قابلة للاسترداد، مثل نفاد الذاكرة، أمرًا ذا صلة ويؤكد أهمية التمييز بين الاثنين.

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

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

    رد
  5. يوفر الشرح التفصيلي للاستثناءات المحددة كجزء من توقيع الطريقة، في حين أن الاستثناءات غير المحددة ليست كذلك، يوفر رؤية قيمة لطبيعة هذه الاستثناءات. توضح المقالة بشكل فعال التمييز بين الاثنين.

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

    رد
  7. تقدم المقالة جدول مقارنة شامل يوضح بإيجاز الاختلافات بين الاستثناءات المحددة وغير المحددة. يبسط الجدول فهم نوعي الاستثناءات وحالات حدوثهما وكيفية التعامل معهما.

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

    رد

اترك تعليق

هل تريد حفظ هذه المقالة لوقت لاحق؟ انقر فوق القلب الموجود في الزاوية اليمنى السفلية للحفظ في مربع المقالات الخاصة بك!