أولا : ما هي الاستثناءات :-
هو عبارة عن خطأ حدث ولمعالجة هذا الخطأ وجدت ما تسمى بالاستثناءات .
ثانيا : تكوين الاستثناءات :-
تتكون جملة الاستثناء من قطعتين برمجيتين أساسيتين هي : 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") }
ربما للوهلة الأولى ترى البرنامج فتستغرب بأنه صحيح لا يوجد خطأ ، ولكن لنفترض أن المستخدم بدل من أن يدخل ارقام صحيحة قام بإدخال نص فلابد هنا من معالجة الخطأ .