Raqamli texnologiyalar fakulteti dasturiy injiniring yo’nalishi



Download 1,57 Mb.
bet6/81
Sana23.06.2022
Hajmi1,57 Mb.
#695199
1   2   3   4   5   6   7   8   9   ...   81
Bog'liq
Dasturiy injiniring Dasturlash 2-4

Istisnolar. Istisnolarni qayta ishlash xatolarni yoki boshqa istisno holatlarni kodni bajarishning umumiy oqimidan ajratish mexanizmini ta'minlaydi. Bu muayyan vaziyatlarda ko'proq erkinlik beradi, shu bilan birga kodlarni qaytaradigan tartibsizliklarni kamaytiradi.
Quyida biz C++ da istisnolardan foydalanish tamoyillarini ko'rib chiqamiz.
Istisnolarni qayta ishlash. throw, try va catch bloki. C++ tilidagi istisnolar bir-biri bilan birgalikda ishlaydigan uchta kalit so'z yordamida amalga oshiriladi: throw, try va catch.
Istisnolar generatsiyasi. Muayyan voqealar sodir bo'lganligini ko'rsatish uchun biz doimo haqiqiy hayotda signallardan foydalanamiz. Misol uchun, basketbol o'yini paytida, agar o'yinchi jiddiy qoidabuzarlik qilsa, hakam hushtagi chaladi va o'yin to'xtatiladi. Keyin erkin to'pni to'plash keladi. Erkin to'p to'planishi bilanoq o'yin qayta boshlanadi.
C++ da throw iborasi istisno yoki xato haqida signal berish uchun ishlatiladi (hakam hushtak chalgandagi kabi). Istisno sodir bo'lganligi haqida signal berish istisnoni generatsiyasi deb ataladi.
throw operatoridan foydalanish uchun siz throw kalit so'zidan keyin xato haqida signal berish uchun foydalanmoqchi bo'lgan har qanday ma'lumot turi qiymatidan foydalanasiz. Odatda, bu qiymat xato kodi, muammoning tavsifi yoki maxsus istisno sinfidir. Masalan:

throw -1; // int tipidagi istisno generatsiyasi


throw ENUM_INVALID_INDEX; // enum tipidagi generatsiya
throw "Manfiy sonning kvadrat ildizini olib bo'lmaydi"; // const char * tipidagi istisnoni generatsiyasi (C uslubidagi satr)
throw dX; // double turidagi istisno generatsiyasi (oldin aniqlangan double tipidagi o'zgaruvchi)
throw MyException("Fatal Error"); // MyException sinfining obyekti yordamida istisno qilish

Ushbu satrlarning har biri hal qilinishi kerak bo'lgan xatolik yuz berganligini bildiradi.




Istisnolarni topish. Istisnolarni generatsiyalash istisnolarni qayta ishlash jarayonining faqat bir qismidir. Keling, basketbol o'xshashligimizga qaytaylik: bir marta hakam hushtak chalsa, keyin nima bo'ladi? O'yinchilar to'xtatiladi va o'yin vaqtincha to'xtatiladi. O'yinning normal borishi buziladi.
C ++ da biz try kalit so'zidan bayonot blokini ("try bloki" deb ataladi) aniqlash uchun foydalanamiz. try bloki bir xil try blokidagi har qanday bayonot tomonidan chiqarilgan istisnolarni qidiradigan kuzatuvchi sifatida ishlaydi, masalan:
try
{
// Bu erda biz keyingi istisnolarni generatsiya qiladigan bayonotlarni yozamiz
throw -1; //
}

E'tibor bering, try bloki istisnoni QANDAY hal qilishimizni aniqlamaydi. U kompilyatorga shunchaki aytadi: "Hey, agar ushbu try blokidagi biron bir bayonot istisno qilsa, uni ushlab ol!"



Download 1,57 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   81




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.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