الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال بسيط حول ال Exceptions

بدأه استثنائيه في 8 مايو 2009 · 5 رد · 727 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

أود أن أسأل مالفرق بين هذه الاكسبشنز

ArrayIndexOutOfBoundsException و IndexOutOfBouundsException ?

أيضـا

InputMismatchException و NoSuchElementException ?

أعلم أن الثانية هي سوبر كلاس للأولى , لكن مالذي تحتوي عليه و لا تحتوي الاخرى عليه ؟

و شكرا مقدما ..

#2

و سؤال آخر -عذرا على الازعاج >< -

checked exception هي الأخطاء في كتـابة الاكواد مثلا كتابة nextInt لمتغير من نوع double ؟ هل هي هذا النوع من الاخطاء فقط ؟

#3

السلام عليكــم ورحمـة الله وبركاتــه ،،

بالنسبة لArrayIndexOutOfBoundsException فإنها تحصل عندما تريدين استعمال عنصر خارج من المصفوفة

مثال


System.out.println(array[2]);//ok
System.out.println(array[3]);//not ok, this throw an ArrayIndexOutOfBoundsException, because we try to access to the element with index 3, which doesn't exist(remeber that arrays start with 0)
int [] array = {1, 2, 3};//an array of three elements

بالنسبة ل IndexOutOfBoundsException فإنها تستعمل في الCollections مثل ArrayList، وهي تحصل عندما تريدين استعمال عنصر خارج من الCollection

InputMismatchException

اقتباس
Thrown by a Scanner to indicate that the token

retrieved does not match the pattern for the expected type, or

that the token is out of range for the expected type.

لم أجد أي كلاس CheckedException في توثيق sun!!

تم تعديل هذه المشاركة بواسطة herch في 8 مايو 2009 في 14:28

#4

شكرا شكرا و لا تفي ..

بالنسبة لـ checked exception , ما أعرفه أن الاكسبشن نوعين ..

checked exception و unchecked exception :

النوع الثاني مالا يكتشفه الكمبايلر لانه يحدث وقت الrun كـادخال صفر في خانه المقسوم عليه .. و هذا النوع من الاكسبشنز نتفاداه بعمل Exception handling

لكن النوع الاول هو ما يكتشفه الكمبايلر مثل المثال الذي ذكرته سابقا .. قرأت أن الكمبايلر يجبرك بعمل Exception handling لبعض انواع checked exception , سؤالي متى .. ؟

#5

السلام عليكــم ورحمـة الله وبركاتــه ،،

الcompiler يجبرك دائما بالقيام بexception handling إذا كانت الميثود التي تستعملين ممكن أن تحدث exception

إذا ألقيت نظرة إلى الكلاسات الخاصة بالinput/output فستجدين أغلبها مكتوبة بالشكل التالي

public TypeReturn nameOfMethod(args) throws SomeExeption {.....}

عندما ترين throws SomeException في ميثود ما، فهذا يعني أنه يجب عمل ال exception handling

SomeException هي فقط مثال ولا وجود لها

تم تعديل هذه المشاركة بواسطة herch في 8 مايو 2009 في 15:02

#6

للأمانة المترجم أحياناً لا يجبرك على هذا

وذلك ما يسمى بـ unchecked exception

ولكي تقوم بعمل واحد من هذا النوع يجب أن ترث من RuntimeException وليس من Exception

هذه الفكرة العامة كنت كتبت مقالة حول الموضوع لكن بأمانة لا أذكر ماذا كتبت فيها

على كل حال لن أضع رابط لها لكي لا أتهم بأني أسوق لمدونتي

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة