الفرق بين الخطأ والاستثناء في جافا

مؤلف: Laura McKinney
تاريخ الخلق: 2 أبريل 2021
تاريخ التحديث: 4 قد 2024
Anonim
20 - Exception Handling in Java - برمجة 2
فيديو: 20 - Exception Handling in Java - برمجة 2

المحتوى


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

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

رسم بياني للمقارنة

أساس للمقارنةخطأاستثناء
الأساسييحدث خطأ بسبب نقص موارد النظام.يحدث استثناء بسبب الكود.
التعافيخطأ غير قابل للاسترداد.استثناء قابل للاسترداد.
الكلمات الدالةلا توجد وسيلة للتعامل مع خطأ عن طريق رمز البرنامج.يتم التعامل مع الاستثناءات باستخدام ثلاث كلمات رئيسية هي "try" و "catch" و "رمي".
الآثار
عند اكتشاف الخطأ ، سيتم إنهاء البرنامج بشكل غير طبيعي.كاستثناء تم اكتشافه ، يتم إلقاء الكلمات الرئيسية "رمي" و "التقاط" عليها والتقاطها بشكل متزامن.
أنواع يتم تصنيف الأخطاء كنوع غير محدد.يتم تصنيف الاستثناءات كنوع محدد أو غير محدد.
صفقة في Java ، يتم تعريف الأخطاء "java.lang.Error".في Java ، يتم تعريف استثناءات في "java.lang.Exception".
مثالOutOfMemory ، StackOverFlow.الاستثناءات المحددة: NoSuchMethod ، ClassNotFound.
استثناءات لم يتم التحقق منها: NullPointer ، IndexOutOfBounds.


تعريف الخطأ

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

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

تعريف الاستثناء

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


جرب {// اكتب الكود هنا} Catch (نوع الاستثناء) {// اكتب الكود هنا}

في الكود أعلاه ، الكود المكتوب في كتلة المحاولة هو الكود الذي تريد مراقبته للاستثناء. في حالة حدوث الاستثناء في كتلة try ، يتم طرحه باستخدام الكلمة الأساسية "throw". يمكن اكتشاف الاستثناء من قِبل كتلة "catch" في الكود أعلاه. "نوع الاستثناء" هو نوع الاستثناء الذي حدث.

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

  1. يحدث الخطأ فقط عندما تكون موارد النظام ناقصة ، بينما يحدث استثناء إذا كانت هناك مشكلة في الكود.
  2. لا يمكن استرداد الخطأ أبدًا ، بينما يمكن استرداد استثناء عن طريق إعداد التعليمات البرمجية لمعالجة الاستثناء.
  3. لا يمكن التعامل مع أي خطأ على الإطلاق ، ولكن يمكن معالجة استثناء بواسطة الكود إذا تم كتابة الكود الذي يرمي استثناءً داخل كتلة try و catch.
  4. في حالة حدوث خطأ ، سيتم إنهاء البرنامج بشكل غير طبيعي. من ناحية أخرى ، في حالة حدوث استثناء ، سيقوم البرنامج برمي استثناء ، ويتم التعامل معه باستخدام كتلة try and catch.
  5. الأخطاء من النوع الذي لم يتم التحقق منه ، أي أن الخطأ ليس في معرفة المترجمين ، في حين يتم تصنيف استثناء على أنه تم التحقق منه ولم يتم التحقق منه.
  6. يتم تعريف الأخطاء في حزمة java.lang.Error ، بينما يتم تعريف استثناء java.lang.Exception.

خاتمة:

الاستثناءات هي نتائج الأخطاء التي تم إجراؤها في ترميز البرنامج ، والأخطاء هي نتيجة الأداء غير السليم للنظام