في البرمجة ، خاصة عند العمل مع مجموعات البيانات ، غالبا ما تحدث أخطاء تحتاج إلى التعامل معها. واحد من هذه الأخطاء هو نوسوتشيليمنتكسيبتيون. يحدث عند محاولة الوصول إلى عنصر من المجموعة لم يعد موجودا فيه.
قد يحدث هذا الخطأ ، على سبيل المثال ، عند استخدام طرق فئة التكرار. توفر فئة التكرار القدرة على التكرار من خلال عناصر المجموعة بالتتابع. عندما نسمي الطريقة التالية () للحصول على العنصر التالي ، يقوم المكرر بتحريك موضع واحد للأمام. إذا لم يكن هناك المزيد من العناصر في المجموعة ، يتم طرح نوسوتشيليمنتكسيبتيون عندما يتم استدعاء الأسلوب التالي() مرة أخرى.
لتجنب هذا الخطأ ، من الضروري التحقق من وجود العنصر قبل التعامل معه. للقيام بذلك ، يمكنك استخدام طريقة هاسنكست () ، والتي ترجع صحيح إذا كان لا يزال هناك عناصر في المجموعة. إذا تم إرجاع فالس ، فهذا يعني أن العنصر التالي لم يعد هناك ومحاولة أخرى للحصول عليه سيؤدي إلى نوسوتشيليمنتكسيبتيون.
إذا ، ومع ذلك ، تم استخدام الطريقة التالية() عن طريق الخطأ دون التحقق أولا هاسنكست () ، ثم يمكنك التعامل مع نوسوتشيليمنتكسيبتيون التي وقعت. يتم استخدام بناء محاولة الصيد لهذا الغرض.
مثال:
محاولة {
كثافة العمليات عنصر = مكرر.التالي();
// العمليات مع عنصر
} الصيد (نوسوشيليمنتكسيبتيون ه) {
النظام.خارج.برينتلن ("نوسوتشيليمنتكسيبتيون اشتعلت");
}
في كتلة الصيد ، يمكنك تنفيذ الإجراءات اللازمة لاستعادة أو ببساطة عرض معلومات الخطأ. من الممكن أيضا تمرير الاستثناء أعلاه باستخدام مشغل الرمي. من المهم أن نتذكر أن التعامل مع نوسوتشيليمنتكسيبتيون هو ممارسة جيدة ، ولكن لا يزال من المستحسن تجنب حدوثه باستخدام أساليب جمع بشكل صحيح.
- جافا.أوتيل.نوسوشيليمنتكسيبتيون
- ما هو جافا.أوتيل.نوسوتشيليمنتكسيبتيون?
- أسباب جافا.أوتيل.نوسوشيليمنتكسيبتيون
- كيفية التقاط والقضاء على جافا.أوتيل.نوسوتشيليمنتكسيبتيون?
- العمل مع جافا.أوتيل.لااستثناءات استثناء
- أمثلة على استخدام جافا.أوتيل.نوسوشيليمنتكسيبتيون
- سؤال وجواب
- ما هو جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون?
- ما هو نوع الاستثناء سوف المقبل () طريقة رمي عند محاولة الحصول على عنصر من مجموعة فارغة?
- كيف يمكنني التقاط جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون?
- لماذا جافا.يحدث استثناء أوتيل.نوسوتشيليمنتكسيبتيون في حلقة على مجموعة?
- كيف يمكنني إصلاح جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون في حلقة جمع?
- ما هي الطرق الأخرى التي يمكن استخدامها لتجنب حدوث جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون?
جافا.أوتيل.نوسوشيليمنتكسيبتيون
جافا.أوتيل.نوسوتشيليمنتكسيبتيون هو استثناء يحدث في جافا عند محاولة استرداد عنصر من مجموعة فارغة أو حاوية باستخدام أساليب مثل التالي() في إيتراتور ، نكستليمنت() في التعداد ، أو نكستتوكين() في سترينغتوكينيزر.
يمكن للبرنامج طرح هذا الاستثناء عندما يحاول الوصول إلى العنصر التالي من المجموعة ، أو عندما يتم فرز المجموعة بالكامل ، أو عندما لا يكون هناك عنصر في المجموعة.
دعونا ننظر إلى مثال على التعليمات البرمجية التي يمكن أن تسبب جافا.أوتيل.نوسوشيليمنتكسيبتيون:
استيراد جافا.أوتيل.*;
فئة عامة لاوهذا العنصرالاستثناءمثال {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج){
قائمة قائمة = أريليست جديدة();
مكرر مكرر = قائمة . مكرر ();
بينما (مكرر.هاسنكست ()) {
النظام.خارج.برينتلن (مكرر.التالي());
}
}
}
في المثال أعلاه ، أنشأنا قائمة فارغة وحاولنا التكرار من خلال عناصرها باستخدام مكرر. ومع ذلك ، نظرا لأن القائمة فارغة ، لا يحتوي المكرر على عناصر للعودة ، وجافا.أوتيل.يتم طرح نوسوتشيليمنتكسيبتيون.
:
استيراد جافا.أوتيل.*;
فئة عامة لااستثناءمثال {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {
قائمة قائمة = أريليست جديدة();
مكرر مكرر = قائمة . مكرر ();
بينما (مكرر.هاسنكست ()) {
النظام.خارج.برينتلن (مكرر.التالي());
}
إذا (!مكرر.هاسنكست ()) {
النظام.خارج.برينتلن ("لا مزيد من العناصر في المجموعة!");
}
}
}
خارج الحلقة للتحقق مما إذا كانت لا تزال هناك عناصر في المجموعة. إذا لم يكن هناك المزيد من العناصر ، فإن الرسالة "لا مزيد من العناصر في المجموعة!"سيتم عرض بدلا من رمي جافا.استثناء أوتيل.نوسوتشيليمنتكسيبتيون.
جافا.أوتيل.نوسوتشيليمنتكسيبتيون. Например:
استيراد جافا.أوتيل.*;
استثناء الطبقة العامةعلى سبيل المثال {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {
قائمة قائمة = أريليست جديدة();
محاولة {
مكرر مكرر = قائمة . مكرر ();
بينما (مكرر.هاسنكست ()) {
النظام.خارج.برينتلن (مكرر.التالي());
}
} الصيد (نوسوشيليمنتكسيبتيون ه) {
النظام.خارج.برينتلن ("لا مزيد من العناصر في المجموعة!");
}
}
}
للقبض على جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون. إذا تم طرح استثناء عند محاولة الحصول على العنصر التالي من مجموعة فارغة ، فإن الرسالة "لا مزيد من العناصر في المجموعة!"سيتم عرضها بدلا من مقاطعة تنفيذ البرنامج.
المعالجة الصحيحة لجافا.أوتيل.نوسوتشيليمنتكسيبتيون هو ممارسة البرمجة الجيدة لتجنب إنهاء غير متوقع من تنفيذ البرنامج في حالة وجود مجموعة فارغة أو حاوية.
ما هو جافا.أوتيل.نوسوتشيليمنتكسيبتيون?
جافا.أوتيل.نوسوتشيليمنتكسيبتيون هو فئة استثناء في لغة البرمجة جافا التي تشير إلى أن القيمة التالية لم يتم العثور عليها في بنية البيانات التي تتطلب الوصول المتسلسل إلى العناصر ، مثل قائمة أو قائمة انتظار أو مكرر.
يحدث هذا الاستثناء عندما تحاول الطريقة استرداد العنصر التالي من بنية بيانات فارغة. على سبيل المثال ، إذا حاولت الحصول على العنصر التالي من مكرر وصل بالفعل إلى نهاية المجموعة ، سيتم طرح نوسوتشيليمنتكسيبتيون.
قد تكون الأسباب المحتملة لهذا الاستثناء:
- محاولة للحصول على العنصر التالي من قائمة فارغة أو قائمة انتظار.
- محاولة للحصول على العنصر التالي من المكرر الذي وصل بالفعل إلى نهاية المجموعة.
- خطأ في منطق البرنامج ، مما يؤدي إلى وضع غير صحيح للمكرر.
للتعامل مع استثناء نوسوتشيليمنتكسيبتيون ، يمكنك استخدام محاولة الصيد:
محاولة بناء{
// الكود الذي قد يحدث فيه استثناء
} الصيد (نوسوشيليمنتكسيبتيون ه) {
// معالجة الاستثناء
}
يمكنك أيضا منع حدوث استثناء عن طريق التحقق من وجود العنصر التالي قبل استدعاء الطريقة المناسبة. على سبيل المثال:
إذا (مكرر.هاسنكست ()) {
إنت نكستليمنت = مكرر.التالي();
// معالجة العنصر التالي
} آخر {
// التعامل مع حالة العناصر المفقودة
}
من المهم التعامل مع نوسوتشيليمنتكسيبتيون بشكل صحيح لمنع البرنامج من العمل بشكل غير صحيح وضمان استقراره.
أسباب جافا.أوتيل.نوسوشيليمنتكسيبتيون
جافا.أوتيل.نوسوتشيليمنتكسيبتيون هو استثناء يحدث في لغة البرمجة جافا عندما يحاول برنامج لاسترداد عنصر من مجموعة ، ولكن لا يوجد مثل هذا البند. في هذه المقالة ، سننظر في بعض أسباب هذا الاستثناء.
- جمع فارغة: واحدة من الأسباب الرئيسية لجافا.استثناء أوتيل.نوسوتشيليمنتكسيبتيون هو محاولة لاسترداد عنصر من مجموعة فارغة. إذا كانت المجموعة لا تحتوي على أي عناصر ، فإن محاولة الحصول على عنصر منها ستؤدي إلى هذا الاستثناء.
- التحقق الضروري: في بعض الأحيان قد ينسى المطورون إضافة التحقق الضروري قبل استرداد عنصر من مجموعة. على سبيل المثال ، إذا مر البرنامج بعناصر مجموعة في حلقة ، ولكن لم يتم إجراء الفحص الضروري ، فقد يحدث استثناء عند محاولة الحصول على العنصر التالي عندما لا يكون هناك المزيد من العناصر المتبقية.
- الاستخدام غير الصحيح للمكرر: يمكن أن يؤدي الاستخدام غير الصحيح لمكرر المجموعة أيضا إلى جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون. على سبيل المثال ، إذا لم تتم ترجمة المكرر إلى العنصر التالي قبل استلامه ، فقد يحدث هذا الاستثناء عند محاولة تلقي عنصر.
- خطأ عند تنفيذ الخوارزمية: حدوث استثناء جافا.أوتيل.قد يكون نوسوتشيليمنتكسيبتيون بسبب التنفيذ غير الصحيح للخوارزمية. على سبيل المثال ، عند معالجة المجموعات التي تتطلبها الخوارزمية ، قد تنشأ مواقف عندما لا تكون هناك عناصر كافية للعمل بشكل صحيح ، وهذا يؤدي إلى هذا الاستثناء.
بشكل عام ، والسبب الرئيسي لظهور جافا.أوتيل.نوسوتشيليمنتكسيبتيون هو محاولة لاسترداد عنصر من مجموعة عندما لا يكون هذا العنصر موجودا أو لم يتم إجراء التحقق اللازم. لتجنب هذا الاستثناء ، من المهم مراقبة الاستخدام الصحيح للمجموعات بعناية وإجراء الفحوصات اللازمة قبل استلام العناصر.
كيفية التقاط والقضاء على جافا.أوتيل.نوسوتشيليمنتكسيبتيون?
جافا.أوتيل.يحدث استثناء نوسوتشيليمنتكسيبتيون في جافا عند محاولة استرداد عنصر من مجموعة أو بنية بيانات أخرى عند عدم وجود عنصر مع الفهرس أو المفتاح المحدد. يمكن أن يحدث هذا ، على سبيل المثال ، عند استخدام الأساليب التالية() أو إزالة() للمكرر ، أو عند الوصول إلى عنصر بمفتاح في مجموعة أو قاموس.
لتجنب حدوث جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون ، يجب عليك أولا التحقق من وجود عناصر في المجموعة. للقيام بذلك ، يمكنك استخدام أساليب هاسنكست() و هاسنكستكس () (حيث س هو نوع من عناصر المجموعة) من المكرر ، وكذلك التحقق من وجود مفتاح في القاموس أو مجموعة.
مثال على استخدام طريقة هاسنكست () لمكرر:
قائمة مايليست = جديد أريليست();
مايليست.يضاف ("العنصر 1");
مايليست.يضاف ("العنصر 2");
مايليست.يضاف ("العنصر 3");
مكرر مكرر = مايليست.مكرر ();
بينما (مكرر.هاسنكست ()) {
عنصر السلسلة = مكرر.التالي();
النظام.خارج.برينتلن (عنصر);
}
مثال على استخدام المفتاح تحقق في القاموس:
خريطة ميماب = هاشماب جديد();
خريطتي.وضع ("مفتاح 1" ، 1);
خريطتي.وضع ("مفتاح 2" ، 2);
خريطتي.وضع ("مفتاح 3" ، 3);
مفتاح السلسلة = "مفتاح 4";
إذا (خريطة.يحتوي على مفتاح (مفتاح)) {
قيمة كثافة العمليات = ميماب.الحصول على (مفتاح);
النظام.خارج.برينتلن ("قيمة المفتاح" + مفتاح +": "+ قيمة);
} آخر {
النظام.خارج.برينتلن ("مفتاح" + مفتاح + "غير موجود");
}
إذا كان لا يزال هناك جافا.استثناء أوتيل.حدث نوسوتشيليمنتكسيبتيون ، يمكن القبض عليه باستخدام بناء محاولة الصيد وتنفيذ الإجراءات المناسبة. على سبيل المثال ، يمكنك عرض رسالة خطأ أو تنفيذ إجراء بديل بدلا من معالجة عنصر غير موجود.
مثال على اصطياد جافا.أوتيل.نوسوتشيليمنتكسيبتيون استثناء:
قائمة مايليست = جديد أريليست();
مايليست.يضاف ("العنصر 1");
مايليست.إضافة ("элемент 2");
محاولة {
عنصر السلسلة = مايليست.الحصول على (2);
النظام.خارج.برينتلن (عنصر);
} الصيد (نوسوشيليمنتكسيبتيون ه) {
النظام.خارج.برينتلن ("Элемент с указанным индексом не существует");
}
بالإضافة إلى التحقق المسبق من وجود العناصر أو المفاتيح ، من المهم أيضا الانتباه إلى الاستخدام الصحيح لأساليب التكرار ، وتهيئة المجموعات وتحديثها ، بالإضافة إلى العمل الصحيح مع الفهارس أو المفاتيح.
باستخدام المجموعات بشكل صحيح وإجراء فحوصات لوجود عناصر أو مفاتيح ، يمكنك تجنب حدوث جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون وتنفيذ العمليات مع مجموعات دون أخطاء.
العمل مع جافا.أوتيل.لااستثناءات استثناء
جافا.أوتيل.نوسوتشيليمنتكسيبتيون هو استثناء يحدث عندما لا تجد طريقة تنتظر العنصر التالي في تسلسل الإدخال العنصر عند محاولة الحصول على العنصر التالي.
هذا الاستثناء هو فئة فرعية من رونتيميكسيبتيون وهو جزء من التسلسل الهرمي إطار مجموعات جافا. يحدث عادة عند استخدام الأساليب المتعلقة بتكرار أو معالجة العناصر في الحاويات ، مثل القائمة أو المجموعة أو قائمة الانتظار.
في حالة حدوث نوسوتشيليمنتكسيبتيون ، قد يكون هذا بسبب عدة أسباب:
- المجموعة فارغة أو لا تحتوي على العنصر المطلوب.
- تم إجراء عدد كبير جدا من المكالمات إلى الطريقة التالية() دون التحقق أولا مع هاسنكست().
- تم استدعاء مجموعة من الأساليب التي أدت إلى تسلسل غير صحيح من الوصول إلى العناصر.
يمكن استخدام عدة طرق للقبض على استثناء نوسوتشيليمنتكسيبتيون والقضاء عليه.
- تأكد من أن المجموعة ليست فارغة. قبل الوصول إلى عناصر المجموعة ، يوصى بالتحقق مما إذا كانت تحتوي على عناصر. للقيام بذلك ، يمكنك استخدام طريقة هاسنكست () ، والتي ترجع صحيح إذا كان هناك العنصر التالي في المجموعة.
- استخدم الإنشاءات الشرطية. إذا قمت باستدعاء الطريقة التالية () دون التحقق أولا من هاسنكست () ، لف المكالمة التالية () في بناء شرطي للتحقق مما إذا كان العنصر التالي في المجموعة. إذا كان هناك عنصر ، فاتبع الخطوات المطلوبة. خلاف ذلك ، تعامل مع الخطأ أو نفذ إجراءات أخرى بناء على احتياجات التعليمات البرمجية الخاصة بك.
- تحقق من منطق التعليمات البرمجية الخاصة بك. قد يحدث نوسوتشيليمنتكسيبتيون بسبب تسلسل غير صحيح من الوصول إلى عناصر المجموعة. تأكد من إدارة التكرار أو الوصول إلى عناصر المجموعة بشكل صحيح. تأكد من أن المكالمات إلى التالي() و هاسنكست () الأساليب هي في الترتيب الصحيح.
- تأكد من عدم استدعاء الطريقة التالية () بعد الوصول إلى نهاية المجموعة. إذا كنت قد وصلت إلى نهاية المجموعة وتحاول الحصول على العنصر التالي ، سيتم طرح نوسوتشيليمنتكسيبتيون. تأكد من أن الكود الخاص بك يدير التكرار بشكل صحيح ويمنع استدعاء الطريقة التالية() بعد الوصول إلى نهاية المجموعة.
فهم أسباب استثناء نوسوتشيليمنتكسيبتيون وتطبيق الأساليب الصحيحة لمنع ذلك سوف تسمح لك أن تتعلم من الأخطاء وتحسين التعليمات البرمجية الخاصة بك ، وضمان سلاسة العمل مع مجموعات في جافا.
أمثلة على استخدام جافا.أوتيل.نوسوشيليمنتكسيبتيون
جافا.أوتيل.نوسوتشيليمنتكسيبتيون هو استثناء يحدث عند محاولة استرداد عنصر من مجموعة أو مكرر عندما لا يكون هناك المزيد من العناصر المتاحة.
وفيما يلي بعض الأمثلة على الحالات التي يكون فيها جافا.أوتيل.قد يحدث استثناء نوسوشيليمنتكسيبتيون:
بينما (الماسح الضوئي.هاسنكستلين ()) {
خط سلسلة = الماسح الضوئي.الخط التالي();
}
سلسلة السطر التالي = الماسح الضوئي.السطر التالي () ؛ / / سيحدث نوسوتشيليمنتكسيبتيون
في كل هذه الحالات ، جافا.أوتيل.يمكن التعامل مع استثناء نوسوتشيليمنتكسيبتيون باستخدام محاولة الصيد:
حاول بلوك{
// التعليمات البرمجية التي يمكن أن تسبب نوسوتشيليمنتكسيبتيون
} الصيد (نوسوشيليمنتكسيبتيون ه) {
// معالجة الاستثناء
}
من الممارسات الجيدة التحقق المسبق من وجود العنصر التالي قبل استلامه:
إذا (مكرر.هاسنكست ()) {
عدد صحيح نيكستليمنت = مكرر.التالي();
}
وبالتالي ، يمكنك تجنب حدوث جافا.استثناء أوتيل.نوسوتشيليمنتكسيبتيون وضمان التشغيل الآمن مع مجموعات ومكررات.
سؤال وجواب
ما هو جافا.أوتيل.استثناء نوسوتشيليمنتكسيبتيون?
جافا.أوتيل.يحدث استثناء نوسوتشيليمنتكسيبتيون عندما نحاول الحصول على عنصر من مجموعة أو تيار غير موجود.