الاستثناءات – exception

أولا : ما هي الاستثناءات :-

هو عبارة عن خطأ حدث ولمعالجة هذا الخطأ وجدت ما تسمى بالاستثناءات .


ثانيا : تكوين الاستثناءات :-

تتكون جملة الاستثناء من قطعتين برمجيتين أساسيتين هي : try , catch وقطعة ثالثة اختيارية وهي : finally .

try :- 

  • نكتب في هذه القطعة البرمجية الأوامر التي نحتمل وقوع الخطأ فيها بمعنى لسنا متأكدين من مدى صحة ما كتبناه، ومن المحتمل أن لا يكون بها خطأ.
  • في حال قام البرنامج بقراءة هذه القطعة ووجد خطأ يقوم بتجاهل باقي الأوامر وينتقل إلى قطعة catch .
  • في حال تمت قراءة قطعة try ولم يكن فيها خطأ لا يدخل الـ catch وينتقل إلى finally في حال توفرها .
try{
    
}

catch :- 

  • في البداية نعرف متغير بين القوسين ونعين نوع المتغير وهو نوع الخطأ منطقي ، رياضي …إلخ
  • بداخل القطعة البرمجية نكتب أوامر خاصة بنوع الخطأ الذي قمنا بتمريره بمعنى لو كان نوع الخطأ منطقي ، وحدث خطأ في البرنامج نوعه رياضي لن تستطيع هذه القطعة حل المشكلة ولحل المشكلة نقوم بإنشاء قطعة catch أخرى مخصصة لنفس نوع الخطأ .
catch(variable:exceptionType){

}

finaly :- 

قطعة اختيارية تتضمن أوامر معينة عادية ليس لها علاقة بالخطأ .


ثالثاً: مثال:-

try{

    println("enter first number :")
    var number1:Int = readLine()!!.toInt()
    println("enter second number :")
    var number2:Int = readLine()!!.toInt()
    var result = number1+number2
    println("The result is: $result")
}

catch(numEx:NumberFormatException){

    println("only integer number entered")


}

ربما للوهلة الأولى ترى البرنامج فتستغرب بأنه صحيح لا يوجد خطأ ، ولكن لنفترض أن المستخدم بدل من أن يدخل ارقام صحيحة قام بإدخال نص فلابد هنا من معالجة الخطأ .