O. X. Azamatov


 Istisnolarni qayta ishlash



Download 1,82 Mb.
Pdf ko'rish
bet88/119
Sana19.07.2021
Hajmi1,82 Mb.
#123208
1   ...   84   85   86   87   88   89   90   91   ...   119
Bog'liq
3072-Текст статьи-7829-1-10-20200908

12.2. Istisnolarni qayta ishlash 
Dastur  istisno  xolatni  ko‘rishdan  va  unga  javob  berishdan  oldin  istisno  xolatni 
aniqlovchi  C++dagi    try  operatorini  ishlatish  lozim.  Istisnolarni  generatsiya  qila 
oladigan kod bloki try kalit-so‘z bilan boshlanadi va shakldor qavslar ichiga olinadi. 
Agar  try  blok  ichida  istisnoni  topib  olsa,  dasturiy  uzilish  sodir  bo‘ladi  xamda 
quyidagi xatti-harakatlar ketma-ketligi bajariladi: 
1.Dastur istisnoga ishlov bergichning to‘g‘ri keladiganini qidiradi. 


99 
 
2.Agar  ishlov  bergich  topilsa,  stek  tozalanadi  va  boshqaruv  istisnolarga  ishlov 
bergichga uzatiladi. 
3.Agar  ishlov  bergich  topilmagan  bo‘lsa,  ilovani  tugatish  uchun  terminate 
funksiyasi chaqiriladi. 
Yuzaga  kelgan  istisnoga  ishlov  beruvchi  kod  bloki  catch  kalit-so‘z  bilan 
boshlanadi va shakldor qavs ichiga olinadi. Istisnoga ishlov bergichning kamida bitta 
kod  bloki  bevosita  try  blokining  ortidan  kelishi  kerak.  Dastur  generatsiya  qilishi 
mumkin  bo‘lgan  har  bir  istisno  uchun  o‘z  ishlov  bergichi  ko‘zda  tutilgan  bo‘lishi 
kerak.  Istisnolarga  ishlov  bergichlar  navbatma-navbat  ko‘rib  chiqiladi  xamda  turi 
bo‘yicha  catch  operatoridagi  argument  (dalil)  turiga  to‘qg‘ri  keladigan  istisnoga 
ishlov  bergich  tanlab  olinadi.  Ishlov  bergich  tanasida  goto  operatorlari  bo‘lmagan 
taqdirda, berilgan try bloki istisnolariga ishlov bergichning oxirgisidan keyin kelgan 
nuqtadan boshlab dasturning bajarilishi yana davom etadi.  
Masalan, file_sopy funksiyani chaqirishda quyidagi try operatori istisno xolatni 
aniqlash imkonini beradi: 
try  
{    file_copy("SOURCE.ТХТ", "TARGET.ТХТ") ;  
              }; 
Qanday  istisno xolat ro‘y berganini aniqlash uchun try operatordan so‘ng dastur 
bitta yoki bir nechta catch operatorlarni joylashtirish lozim: 
catch (file_open_error)  

             cerr << "boshlangich yoki maqsadli faylni ochish xatoligi"<< endl; 
             exit(1); 
          } 
Bu  xolda  xato  tipiga  qaramasdan  kod  xabardor  qiladi  va  dasturni  tugatadi. 
Agarda  funksiyaning  chaqiruvi  xatosiz  bajarilgan  va  istisno  xatolar  aniqlanmagan 
bo‘lsa C++ catch operatorini shunchaki etiborga olmaydi.  
Qayta ishlovchilar tartibi muximdir.  
try  { 


100 
 
                  // ...   
        } 
catch (ibuf) { // kiritish buferi to‘lishini qayta ishlash 
                    } 
catch (io) { // kiritish – chiqarish xatoligini qayta ishlash 
                 } 
catch (stdlib) { // bibliotekadagi istisno xolatni qayta ishlash 
                       } 
catch (...) {    // qolgan xamma istisnolarni qayta ishlash 
                } 

Download 1,82 Mb.

Do'stlaringiz bilan baham:
1   ...   84   85   86   87   88   89   90   91   ...   119




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish