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