Logo ar.removalsclassifieds.com

الفرق بين الاستثناء المحدد وغير المحدد (مع الجدول)

جدول المحتويات:

Anonim

يعد التحقق من الاستثناءات أحد أهم الأشياء في اختبار البرمجة والبرامج. توقف ميزة Checked And Unchecked Exception عن تشغيل البرنامج عندما يحاول اكتشاف خطأ أو خطأ. علاوة على ذلك ، تعتبر مسؤولية المبرمج التأكد من عدم حدوث هذه الأخطاء أبدًا. كل من "الاستثناءات المحددة" و "غير المحددة" متشابهة بشكل استثنائي ، إلا أنها تختلف عن بعضها البعض.

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

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

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

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

جدول المقارنة بين استثناء محدد وغير محدد

معلمات المقارنة

استثناء محدد

استثناء غير محدد

تعريف

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

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

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

لديها فصول استثنائية. لا تحتوي على أي فصول استثنائية أو أنها ليست جزءًا رئيسيًا من فصول استثنائية.
مثال

OutOfMemoryError و NullPointerException و StackOverflowError. IndexOutOfBoundsException

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

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

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

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

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

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

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

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

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

استنتاج

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

مراجع

الفرق بين الاستثناء المحدد وغير المحدد (مع الجدول)