السلام عليكم و رحمة الله و بركاته
عندي سؤال في الإكسيبشن عملت كلاس و فيه try و كل شيء تمام
ال run مشى صحيح لكن انا توقعت ان فيه سطر يخرج قبل سطر اخر
هل هناك قاعدة معينة في الإكسيبشن تجعل السطر الموجود فيه كلمة super
تؤجل لما بعد ؟؟؟
اولا صممت Exception جديد كالتالي :
public class myExcepation extends Exception
{
public myExcepation()
{
super(" my exception thrown!");
System.out.println("immediate attention required!");
}
public myExcepation(String msg)
{
super(msg); // توقعت ان هذه الجملة تنفذ اولا
System.out.println("attention required!");
}
}// end classثم البرنامج التالي الذي يحتاج ال Exception السابق
public class test_myexeption
{
public static void main(String[] args)
{
try
{
throw new myExcepation(" my day , my day");
}//end try
catch (myExcepation e)
{
System.out.print(e.toString());
} // end catch
}
}الناتج كما يلي :
attention required! myExcepation: my day , my day
سؤالي هو
كنت اتوقع في الناتج نفس ما طلع معي
لكن السطر الثاني هو الأول و العكس .
فكيف تم سريان التنفيذ هكذا رغم ان جملة super(msg)
لمفروض انها نفذت اولا .