Maruza atd ki att ax


try operatorlari va istisnolar


Download 88.47 Kb.
Pdf ko'rish
bet4/6
Sana13.01.2023
Hajmi88.47 Kb.
#1089946
1   2   3   4   5   6
Bog'liq
8-ma\'ruza

try operatorlari va istisnolar 
try
operatori xatolarni tuzatish yoki tozalash uchun moʻljallangan kodlar 
blokini koʻrsatadi. try blogidan keyin catch blogi, finally blogi yoki ikkalasi 
ham joylashadi. catch blogi try blogidagi xatolik sodir boʻlganida bajariladi. 
finally
blogi try blogi (yoki agar mavjud boʻlsa, catch blogi) bajarilganidan 
soʻng bajariladi va xatolik yuz berish bermasligidan qat’iy nazar tozalashni 
ta’minlaydi.
catch
blogi xatolik haqida ma’lumotlarni oʻzida saqlovchi Exception 
ob’yektiga murojaat qila oladi. catch blogi yoki xatoliklarni tuzatish uchun yoki 
istisnolarni qayta yuzaga keltirish uchun qoʻllaniladi. Agar jurnalda muammoning 
hosil boʻlish faktini shunchaki qayd etish yoki yuqori darajali yangi tipdagi istisnoni 
yuzaga keltirish zarurati tugʻilganida isnisno qayta generatsiyalanadi. 


finally
blogi nima bajarilishidan qat’iy nazar dasturga determinism 
qoʻshadi. Tarmoq ulanishini yakunlash kabi tozalash masalalarini bajarish uchun 
foydali. try operatori quyidagicha koʻrinishga ega:
try 

// Bu blok bajarilishi vaqtida
// istisno yuzaga kelishi mumkin

catch (ExceptionA ex) 

//ExceptionA tipli istisnoni qayta ishlash 

catch (ExceptionB ex) 

//ExceptionB tipli istisnoni qayta ishlash 

finally 

//tozalash kodi 

Quyidagi kodga e’tibor bering: 
int 
х = 3, у = 0; 
Console.WriteLine (
х / у); 

nol 
qiymat 
qabul 
qilganligi 
sababli, 
kodni 
bajaruvchi 
muhit 
DivideByZeroException istisnosini yuzaga keltiradi va dastur oʻz ishini toʻxtatadi. 
Bu holatni oldini olish uchun biz istisnoni quyidagicha qayta ishlaymiz: 
try 

int 
х = 3, у = 0; 
Console.WriteLine (
х / у); 

catch (DivideByZeroException ex) 

Console.Write ("nolga bo
ʻlish mumkin emas") ; 

// istisnodan so
ʻng dastur bajarilishi
// ... shu yerdan davom etadi 
Eslatma. Mazkur sodda misol istisnolarni qayta ishlashni namoyish etish 
maqsadida keltirilgan. Amalda bunday hisoblashlarni bajarishdan oldin boʻluvchining 


nolga teng boʻlmasligini tekshirish ma’qulroq. Chunki istisnolarni qayta ishlash 
prossessorning yuzlab taktlarini band qiladi. 
Istisno yuzaga kelganida, CLR muhiti quyidagi tekshirishni bajaradi: 
Joriy vaqtdagi bajariluvchi oqim istisnoni aniqlashi mumkin boʻlgan try 
operatori tanasida joylashganmi? 
- javob ha boʻlsa, bajariluvchi oqim catch blogiga oʻtadi. Agar mazkur 
catch
blogi muvaffaqiyatli yakunlansa, u holda bajariluvchi oqim try dan keyingi 
operatorga oʻtkaziladi (agar finally blogi mavjud boʻlsa, avval shu blok 
bajariladi).
- yoʻq javobida, bajariluvchi oqim orqaga, murojaat boʻlgan komponentaga 
qaytariladi va tekshirish takrorlanadi (ichida operator joylashgan ixtiyoriy finally 
bloklari bajarilganidan soʻng). 
Agar murojaat stekidagi hech qaysi funksiya istisnoga javob bermasa, u holda 
foydalanuvchiga xatolik haqida xabar beruvchi muloqot oynasi chiqadi va dastur oʻz 
ishini yakunlaydi. 

Download 88.47 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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