انقطاع إكستريبتيون هو استثناء يمكن أن يحدث في جافا عند العمل مع تعدد مؤشرات الترابط. يشير إلى أن التيار قد توقف من الخارج ، ويجب اتخاذ التدابير المناسبة لمعالجته.
عادة ما يحدث إكستراكتدكسيبتيون عندما يقطع مؤشر ترابط واحد تنفيذ مؤشر ترابط آخر. يمكن أن يحدث هذا ، على سبيل المثال ، عندما يقوم برنامج بإجراء عمليات طويلة في سلسلة رسائل منفصلة ، ويقرر المستخدم مقاطعة تنفيذها.
مثال على مثل هذا الموقف قد يكون تنزيل ملف من الشبكة. إذا قرر المستخدم إلغاء التنزيل ، فيجب على البرنامج التعامل مع هذا الحدث والتوقف عن تنفيذ مؤشر الترابط الذي يعالج تنزيل الملف.
يرث استثناء إنتيرواتيدكسيبتيون فئة الاستثناء وهو استثناء يمكن التحقق منه. لذلك ، يجب التعامل معها بشكل صريح في كتلة محاولة الصيد أو أعلن في توقيع الأسلوب مع الكلمة الرئيسية رميات.
للتعامل بشكل صحيح مع إنتيرستيدكسيبتيون والقيام بذلك بأمان ، اتبع الخطوات التالية:
- قبض على الاستثناء في كتلة محاولة الصيد وتنفيذ الإجراءات اللازمة لإنهاء مؤشر الترابط. على سبيل المثال ، يمكنك توفير منطق للإكمال الصحيح لجميع العمليات وإصدار الموارد;
- استخدم الخيط.كيرنتثريد ().طريقة المقاطعة () لتعيين علامة مقاطعة مؤشر الترابط. سيسمح هذا للطرق الأخرى التي تعمل مع مؤشر الترابط هذا باكتشاف أنه قد تمت مقاطعته.;
- تأكد من أن يتم تمرير إكستراكتدكسيبتيون مرة أخرى بحيث رمز طريقة الاستدعاء يمكن أيضا التعامل مع هذا الاستثناء;
- ما هو الانقطاع في جافا
- أسباب حدوث
- طرق المعالجة
- كيفية تجنب الانقطاع
- مثال على استخدام إنتيرستيدكسيبتيون
- سؤال وجواب
- ما هو الانقطاع في جافا?
- كيف يحدث انقطاع?
- كيفية التعامل مع انقطاع?
- ما هي الإجراءات التي يمكن تنفيذها في كتلة الصيد عند حدوث انقطاع?
- ما هي الطرق الأخرى للتعامل مع انقطاع إكستريبتيون موجودة?
ما هو الانقطاع في جافا
انقطاع إكستريبتيون هو استثناء يمكن أن يحدث في بيئة جافا متعددة مؤشرات الترابط. يشير إلى أن مؤشر الترابط قد تمت مقاطعته بواسطة مؤشر ترابط آخر أثناء تشغيله.
هناك عدة أسباب لحدوث انقطاعالاستثناء:
- لهذا الموضوع ، أثناء نومه ، سيتم طرح استثناء إكستراكتدكسيبتيون.
- ، سيتم طرح استثناء إنتيرستيدكسيبتيون.
- ، ثم سيتم إنشاء استثناء إنتيرستيدكسيبتيون.
- لخيط متقطع.
انقطاع يمكن التعامل مع الاستثناء بعدة طرق:
- ، ثم يمكن التعامل معها وفقا لذلك (على سبيل المثال ، إخراج رسالة خطأ أو العودة من الطريقة).
- . في هذه الحالة ، سيتم التعامل مع الاستثناء في رمز الاتصال.
- تجاهل الاستثناء. في بعض الحالات ، إذا لم تكن هناك حاجة للتعامل مع استثناء إنتيرستيدكسيبتيون ، فإنه يمكن تجاهلها. ولكن في الوقت نفسه ، يجدر بنا أن نتذكر المشاكل المحتملة لتفاعل الخيط وضمان الإكمال الصحيح للبرنامج.
من المهم أن نلاحظ أن إنتيرستدكسيبتيون موروثة ضمنيا من فئة الاستثناء ، لذلك ينبغي أيضا النظر في أنواع أخرى من الاستثناءات عند التعامل مع استثناء.
أسباب حدوث
قد يحدث انقطاع في الحالات التالية:
- استدعاء طريقة الخيط.النوم () ، الذي يأخذ المهلة بالمللي ثانية ، ويدعو مؤشر ترابط آخر طريقة المقاطعة () على مؤشر الترابط الحالي.
- استدعاء الكائن.انتظر () الأسلوب ، الذي يمنع مؤشر الترابط حتى يدعو مؤشر ترابط آخر الأسلوب إعلام () أو نوتيفيال () على نفس الكائن.
- استدعاء طريقة الخيط.الانضمام () ، الذي يمنع مؤشر ترابط الاستدعاء حتى ينتهي مؤشر الترابط الهدف ، ويدعو مؤشر ترابط آخر طريقة المقاطعة () على مؤشر الترابط الهدف.
- استدعاء قائمة الانتظار.ضع () أو حجبطابور.خذ () الطريقة ، التي تمنع مؤشر الترابط حتى يتم تحرير مكان في قائمة الانتظار أو يظهر عنصر في قائمة الانتظار ، ويدعو مؤشر ترابط آخر طريقة المقاطعة() على مؤشر الترابط الحالي.
في كل من هذه الحالات ، سيتم طرح استثناء إنتيرستيدكسيبتيون إلى مؤشر ترابط الاستدعاء. يمكن لمؤشر الترابط استخدام هذا الاستثناء لإكمال عمله أو متابعة التنفيذ مع معالجة إضافية لهذا الاستثناء.
طرق المعالجة
يمكن أن يحدث انقطاع إكستريبتيون في مجموعة متنوعة من الحالات ، لذلك هناك عدة طرق للتعامل مع هذا الاستثناء:
- اصطياد استثناء: طريقة واحدة للتعامل مع إنتيرستدكسيبتيون هو للقبض على استثناء باستخدام كتلة محاولة الصيد. في حالة حدوث استثناء ، يمكنك تنفيذ إجراءات معينة أو تجاهلها ببساطة.
- وتنفيذ الإجراءات المناسبة.
- رمي استثناء: في بعض الأحيان هو أكثر ملاءمة عدم التعامل مع إنتيرستدكسيبتيون مباشرة ، ولكن لرميها أعلى مكدس الاستدعاءات. يمكن أن يحدث هذا ، على سبيل المثال ، عندما يكون من الضروري التعامل مع استثناء على مستوى أعلى أو تمريره إلى مؤشر ترابط آخر.
يعتمد اختيار طريقة المعالجة على الموقف المحدد ومتطلبات التطبيق. يجب أن يؤخذ في الاعتبار أن معالجة المقاطعةيمكن أن يؤثر الاستثناء على تشغيل التطبيق ككل ويجب أن يكون النهج واعيا ومختصا.
كيفية تجنب الانقطاع
إنتيرستدكسيبتيون هو استثناء يمكن التحقق منه التي يمكن أن تحدث عند العمل مع المواضيع في جافا. يحدث هذا الاستثناء عندما يكون مؤشر ترابط في حالة انتظار أو يتم حظره ويتم مقاطعته باستخدام طريقة المقاطعة ().
لتجنب انقطاع ، يمكن استخدام عدة طرق:
- معالجة الاستثناء. يمكنك تضمين معالجة إنتيرستيدكسيبتيون في كتلة محاولة الصيد وتنفيذ الإجراءات المناسبة عند حدوث استثناء. على سبيل المثال ، يمكنك إنهاء مؤشر ترابط عن طريق تنفيذ الإجراءات اللازمة قبل القيام بذلك.
- تمرير استثناء. إذا كنت بحاجة إلى التعامل مع إنتيرستدكسيبتيون في طريقة الاستدعاء ، يمكنك أن تعلن أن الأسلوب يلقي هذا الاستثناء (رميات إنتيرستدكسيبتيون). وبالتالي ، سيتم نقل مسؤولية التعامل مع الاستثناء إلى المتصل.
- باستخدام علامة المقاطعة. عند حدوث مقاطعة إكستراكتدكسيبتيون ، يمثل الأسلوب المقاطعة() مؤشر الترابط كما توقف عن طريق تعيين علامة المقاطعة إلى صحيح. بدلا من التعامل مع استثناء ، يمكن لرمز مؤشر الترابط التحقق بشكل دوري من قيمة علامة المقاطعة باستخدام طريقة إيسينتيرستد() وتنفيذ الإجراءات المناسبة إذا تم تعيين العلم.
- باستخدام طرق الانتظار () والإخطار (). بدلا من استخدام طريقة النوم() للانتظار ، والتي يمكن أن تسبب انقطاع إكستريبتيون ، يمكنك استخدام طريقة الانتظار() للكائن ، والتي يمكن أن تنقطع باستخدام طريقة إعلام (). في هذه الحالة ، من الضروري التعامل مع استثناء إنتيرستيدكسيبتيون عند استدعاء طريقة الانتظار ().
اختيار النهج لتجنب انقطاعإكسسيبتيون يعتمد على الوضع المحدد ومتطلبات البرنامج. من المهم مراعاة مشكلات المزامنة المحتملة عند استخدام طرق الانتظار () والإخطار () ، بالإضافة إلى التعامل بشكل صحيح مع مقاطعات مؤشر الترابط لمنع تسرب الموارد وسلوك البرنامج غير المتوقع.
مثال على استخدام إنتيرستيدكسيبتيون
إنتيرسيبتيون هو استثناء يمكن التحقق منه يمكن أن يحدث عند العمل مع تعدد مؤشرات الترابط في جافا. أحد الأسباب الرئيسية لحدوثه هو انقطاع تدفق تنفيذ التطبيق.
دعونا ننظر إلى مثال على استخدام إنتيرستيدكسيبتيون:
- دعونا إنشاء فئة ميثريد التي سوف تمثل سلسلة من التنفيذ:
- في طريقة التشغيل () لمؤشر ترابط التنفيذ ، نسمي مؤشر الترابط.طريقة النوم (5000) ، والتي تعلق تنفيذ الخيط لمدة 5 ثوان.
- نحن معالجة إنتيرستدكسيبتيون ، والتي يمكن طرحها بواسطة طريقة النوم ().
| أسطورة الطبقة العامة يمتد الموضوع { |
| @تجاوز |
| تشغيل الفراغ العام () { |
| محاولة { |
| الموضوع.النوم (5000); |
| } الصيد (مقاطعة إكستسيبتيون ه) { |
| // معالجة الاستثناء |
| } |
| } |
| } |
في الفئة الرئيسية من البرنامج ، سنقوم بإنشاء كائن ميثريد وتشغيله:
| الطبقة العامة الرئيسية { |
| العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) { |
| أسطورة أسطورة = أسطورة جديدة (); |
| أسطورة.بداية(); |
| } |
| } |
في هذا المثال ، إذا تمت مقاطعة مؤشر الترابط أثناء انتظار تنفيذ طريقة السكون () ، سيتم طرح استثناء إنتيرستيدكسيبتيون. في هذه الحالة ، يمكننا التعامل مع الاستثناء وتنفيذ الإجراءات اللازمة في كتلة الصيد ().
سؤال وجواب
ما هو الانقطاع في جافا?
مقاطعة إكستريبسيبتيون في جافا هو استثناء يمكن أن يحدث عند العمل مع تعدد مؤشرات الترابط. يشير إلى أن الخيط قد توقف من الخارج ولا يمكنه مواصلة عمله.
كيف يحدث انقطاع?
يمكن أن يحدث إنتيرستيدكسيبتيون عندما يكون مؤشر ترابط في حالة انتظار أو في حالة حظر ، ويدعو مؤشر ترابط آخر طريقة المقاطعة() على ذلك. في هذه الحالة ، يتلقى مؤشر الترابط توقف استثناء إكستراكتدكسيبتيون.
كيفية التعامل مع انقطاع?
يمكن التعامل مع انقطاع إكستريبتيون باستخدام كتلة محاولة الصيد. في كتلة الصيد ، يوصى بتنفيذ الإجراءات اللازمة عند مقاطعة مؤشر ترابط ، على سبيل المثال ، إيقاف تشغيله أو الاستجابة للانقطاع وفقا لذلك.
ما هي الإجراءات التي يمكن تنفيذها في كتلة الصيد عند حدوث انقطاع?
في كتلة الصيد ، عند مقاطعةإكسسيبتيون يحدث ، يمكنك تنفيذ إجراءات مختلفة اعتمادا على منطق البرنامج المطلوب. على سبيل المثال ، يمكنك إنهاء مؤشر الترابط أو العودة إلى بداية الحلقة أو ببساطة عرض رسالة خطأ.
ما هي الطرق الأخرى للتعامل مع انقطاع إكستريبتيون موجودة?
بالإضافة إلى استخدام كتلة محاولة الصيد ، يمكن التعامل مع إنتيرستيدكسيبتيون عن طريق رمي استثناء إلى المستوى الأعلى أو باستخدام مؤشر الترابط.كيرنتثريد ().طريقة المقاطعة () ، التي تحدد علامة المقاطعة لمؤشر الترابط الحالي.