السلام عليكم
اذا بحثنا في لغات البرمجة نجد exception and error classes , ما الفائدة منها و كيف نستفيد منها ؟ و ما الفرق بينها و بين throwable class , و ما اذا تعني كلمة throw ؟
ما الفرق بين try-catch و throw
اتمنى ان تجيبوا على تساؤلاتي
و شكرا
السلام عليكم
اذا بحثنا في لغات البرمجة نجد exception and error classes , ما الفائدة منها و كيف نستفيد منها ؟ و ما الفرق بينها و بين throwable class , و ما اذا تعني كلمة throw ؟
ما الفرق بين try-catch و throw
اتمنى ان تجيبوا على تساؤلاتي
و شكرا
معالجة الاستئناءات تمكنك من معالجة خطأ ربما يتسبب في توقف عمل البرنامج
عندما تريد معالجة الاستئناء يجب ان تضع الكود الذي قد يتسبب في الاستثناء في جملة try ومن ثم تعالجة في جملة catch
try
{
something may go wrong here
}
catch(ExceptioYtype)
{
if the error is of type ExceptionType then the error will be handled here
and the program continues normally
}
في لغة جافا كل الاستثناءات تعتبر thorwable اي انها تطبق الانتيرفايس thorwable
جملة throw مفيده عندما انت تريد ان تتسبب باستثناء
مثلا قل انك تريد ان يدخل المستخدم رقم بين 0 - 30 مالم فانك سوف تعطية رسالة خطأ
try{
int i = Integer.parseInt(JOptionPane.showInputDialog("Enter a searching word"));
if(i > 30)
throw new BigNumberException();
}
catch(NumberFormatException ex){
JOptionPane.showMessageDialog(null, "your input is not a number");
}
catch(BigNumberException ex){
JOptionPane.showMessageDialog(null, "you have entered a number that is bigger than 30");
}لاحظ انه في الحالة الاولى الخطأ هو عبارة عن exception يحدث عندما يحاول المترجم تحويل الـ string الى int هنا تقوم جافا برمي الاستثناء throw
بينما في الحالة الثانية قمنا نحن برمي الاستثناء بشكل متعمد بعد جملة if طبعا الاستثناء BigNumberException ليس استثناء قياسي موجود في جافا
وانما قمت انا بتعريفه كاستثناء جديد ، هذا لا يعني انك لا تستطيع الا ان ترمي الاستثناءات التي قمت انت بعملها ، يمكنك رمي اي استثناء يعمل implementation لــ throwable
اتمنى ان يكون ردي قد افادك
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

وضحت الفكرة , شكرا