الانتقال إلى المحتوى الرئيسي

ماذا تفعل إذا حدث استثناء جافا

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

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

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

  1. لماذا تحدث استثناءات جافا?
  2. كيفية التعامل مع استثناءات جافا
  3. باستخدام مشغل محاولة الصيد
  4. باستخدام عامل الرميات
  5. تمديد فئة الاستثناء
  6. اصطياد بعض الاستثناءات
  7. ماذا تفعل إذا لم يتم التعامل مع الاستثناء

لماذا تحدث استثناءات جافا?

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

في جافا ، يمكن أن تحدث استثناءات لأسباب مختلفة:

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

  • خطأ وقت التشغيل: القسمة على صفر ، تجاوز سعة المخزن المؤقت ، استخدام واجهة برمجة التطبيقات غير الصحيح ، إلخ.

  • الموارد غير المتوفرة: عدم الاتصال بقاعدة البيانات ، ونقص الذاكرة ، ومشاكل الشبكة ، وما إلى ذلك.

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

يمكن تقسيم الاستثناءات في جافا إلى فئتين:

  1. ، إلخ .
  2. وغيرها.

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

كيفية التعامل مع استثناءات جافا

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

يتم تمثيل الاستثناءات في جافا بالفئات ويتم توريثها من الفئة القابلة للرمي. هناك نوعان من الاستثناءات: استثناءات محددة وغير محددة.

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

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

هنا مثال على استخدام كتلة معالجة استثناء محاولة الصيد:

محاولة {

// رمز يمكن أن يسبب استثناء

} قبض (نوع 1 استثناء نوع 1) {

// نوع المناولة 1 استثناء

} الصيد (نوع الاستثناء 2 نوع 2) {

// التعامل مع استثناء من النوع 2

} أخيرا {

// الكود الذي سيتم تنفيذه على أي حال

}

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

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

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

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

باستخدام مشغل محاولة الصيد

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

بناء جملة مشغل محاولة الصيد هو كما يلي:

محاولة {

  • // كتلة من التعليمات البرمجية التي قد يحدث فيها استثناء
  • } قبض (استثناء ه) {
  • // كتلة من التعليمات البرمجية التي يتم تنفيذها في حالة استثناء

}

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

فيما يلي مثال على استخدام مشغل محاولة الصيد:

محاولة {

نتيجة كثافة العمليات = قسمة (10 ، 0);

النظام.خارج.برينتلن (نتيجة);

} قبض (حسابيإكسيبتيون ه) {

النظام.خارج.برينتلن ("خطأ: القسمة على صفر");

}

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

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

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

يتم استخدام عامل الرميات في توقيع الطريقة ، بعد قائمة المعلمات وقبل قوس مجعد الافتتاح. بناء جملة المشغل رميات:

اسم طريقة الفراغ العام () يلقي الاستثناء النوع 1 ، الاستثناء النوع 2 {

أين نوع الاستثناء 1 ، نوع الاستثناء 2 هي أنواع الاستثناءات التي يمكن طرحها بهذه الطريقة.

يمكن أن يكون عامل الرميات مفيدا في المواقف التالية:

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

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

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

مثال على استخدام عامل الرميات:

تقسيم الفراغ العام (إنت أ ، إنت ب) يلقي حسابيكسيبتيون {

إذا (ب = = 0) {

رمي حسابي جديد ("القسمة على صفر أمر مستحيل");

}

النتيجة الدولية = أ / ب;

النظام.خارج.برينتلن ("النتيجة:" + النتيجة);

}

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

اصطياد بعض الاستثناءات

في جافا ، من الممكن التعامل مع استثناءات متعددة باستخدام البناء

محاولة الصيد

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

يمكنك استخدام كتل الصيد متعددة للتعامل مع استثناءات متعددة

. كل كتلة

الصيد

يمكنه التعامل مع نوع الاستثناء الخاص به.

"`

محاولة {

// رمز يمكن أن يسبب استثناء

} الصيد (استثناءالنوع 1 استثناء1) {

"`

. إذا كان نوع الاستثناء يطابق أحد

كتل الصيد

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

كتل الصيد

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

"`