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

Anonim

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

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

ما هو استثناء فحص؟

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

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

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

ما هو الفرق بين استثناء فحص واستثناء وقت التشغيل؟

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

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