finally bloki (302-bet)
try/catch bloki ta’sir hududida finally degan qo’shimcha blokni aniqlash ham mumkin. Bu finally blokidan maqsad berilgan operatorlar guruxining istisno paydo bo’lgan-bo’lmaganligidan qat’iy nazar bajarilishini ta’minlashdan iboratdir. Buni namoyish etish uchun Main() metodidan chiqish oldidan avtomobildagi radioni o’chirib qo’yish kerak deb faraz qilaylik, istisno ro’y bergan-bermaganligidan qat’iy nazar:
// 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
}
finally
{
// Bu yerdagi kod istisno paydo bo’lgan-bo’lmaganidan
// ijro etiladi
meningAvtom.Kuylar(false);
}
// Xatolikka ishlov berildi, endi keyingi operatordan
// dastrur ishi davom etaveradi
Console.WriteLine("\n***** Istisno hududidan tashqaridamiz *****");
Console.ReadLine();
}
Endi bu dastur ishga tushirilganida ekranda ushbu yozuvlar paydo bo’ladi:
***** 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: SimpleException
Sokinlik hukmron...
***** Istisno hududidan tashqaridamiz *****
Do'stlaringiz bilan baham: |