Interfeys toifalari tushunchasi Interfeys toifalarni abstract bazaviy sinflar bilan taqqoslash Maxsus interfeyslarni kiritish


Istisnolarni tutib olish (tutish)


Download 0.77 Mb.
bet24/50
Sana26.01.2023
Hajmi0.77 Mb.
#1129439
1   ...   20   21   22   23   24   25   26   27   ...   50
Bog'liq
MAVZULAR UMUMIY

Istisnolarni tutib olish (tutish)
Yodda tuting! Kimda kim .NET ga Java dunyosidan kelgan bo’lsa, shuni unutmasligi kerakki, toifaning a’zolari ular yaratadigan istisnolar tanlanmasi bilan prototiplashtirilmaydi (boshqacha aytganda, .NET platformasi tekshiriladigan istisnolarni qo’llab-quvvatlamaydi). Bu yaxshimi, yomonmi, lekin siz har bir alohida a’zo yaratadigan istisnoga ishlov berishga majbur emassiz.
Endi Tezlanish() metodi istisno yaratayotgani bois, u vujudga kelganida chaqiruvchi kod unga ishlov berishga tayor bo’lishi kerak. Istisno yaratadigan metod chaqirilganida try/catch blokidan foydalanish zarur. Istisno ob’yekti tutib olinganidan keyin uning turli a’zolariga murojaat qilish mumkin va muammo haqida batfsil ma’lumotlarga ega bo’lish mumkin.
Bunday ma’lumotlar bilan keyin qanday ishlarni amalga oshirish asosan sizning o’zingizga bog’liq. Siz ularni hisobot fayliga yozib qo’yishingiz mumkin, Windows ning hodisalar jurnaliga yozib qo’yishingiz ham mumkin, tizim administratoriga electron pochta orqali yuborishingiz mumkin yoki foydalanuvchiga muammo haqida xabarni aks ettirishingiz mumkin. Bu yerda biz istisno tafsilotlarini konsol oynasiga chiqarish bilan chegaralanamiz:
// Yaratilgan istisnoga ishlov berish
static void Main(string[] args)
{
Console.WriteLine("***** Istisnoga oddiy misol *****");
Console.WriteLine("=>Avto yaratish va uni ishlatib ko’rish!”);
Avto meningAvtom = new Avto ("Tulpor”, 20);
meningAvtom.Kuylar(true);
// Avtomobilning maksimal chegarasidan o’tadigan tezlikkacha
// haydash, istisno chiqarish maqsadida
try
{
for (int i = 0; i < 10; i++)
meningAvtom.Tezlanish(10);
}
catch (Exception e)
{
Console.WriteLine(;"\n*** Xato! ***"j . // xato
Console.WriteLine(“Metod: {0}” , e.TargetSite); // metod
Console.WriteLine("Xabar: {0} ", e.Message); // xabar
Console.WriteLine(“Manba: {0}" , e.Source); // manba
}
// Xatolikka ishlov berildi, endi keyingi operatordan
// dastrur ishi davom etaveradi
Console.WriteLine("\n***** Istisno hududidan tashqaridamiz *****");
Console.ReadLine();
}
Mohiyatan try shunday blokki, undagi operatorlar bajarilishi oqibatida istisnolar yaratilishi mumkin. Ya’ni istisnolar yaratishi mumkin bo’lgan barcha operatorlar try blokiga joylashtirilishi kerak. Agar istisno ro’y bersa, dastur ijrosi tegishli catch blokiga o’tadi. Boshqa tomondan, try bloki ichidagi kod istisno yaratmagan bo’lsa, u holda catch bloki to’laligicha tashlab ketiladi, va dastur ijrosi odatiy tartibda davom etaveradi. Quyida yuqoridagi dastur ekranga endi nima chiqarishi ko’rsatilgan:
***** Istisnoga oddiy misol *****
=> Avto yaratish va uni ishlatib ko’rish!
Qo’shiq jaranglaydi...
=> CurrentSpeed = 30
=> CurrentSpeed = 40
=> CurrentSpeed = 50
=> CurrentSpeed = 60
=> CurrentSpeed = 70
=> CurrentSpeed = 80
=> CurrentSpeed = 90
*** Xato! ***
Metod: Void Tezlanish(Int32)
Xabar: Tulpor qizib ketdi!
Manba: OddiyIstisno
***** Istisno hududidan tashqaridamiz *****
Ko’rib turibsizki, istisnoga ishlov berilganidan keyin dastur o’z ishini catch blokidan keyin keladigan nuqtadan davom ettiraverar ekan. (228-bet)


Download 0.77 Mb.

Do'stlaringiz bilan baham:
1   ...   20   21   22   23   24   25   26   27   ...   50




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling