Maruza atd ki att ax


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

catch
 konstruksiyasi 
catch
konstruksiyasi 
tutilgan 
istisno 
tipini 
koʻrsatadi. 
Tip 
System.Exception
yoki System.Exceptionning klasslaridan biri boʻlishi 
mumkin. System.Exception tipini koʻrsatish mumkin boʻlgan barcha 
istisnolarni tutishga olib keladi, bu quyida keltirilgan holatlarda juda qulay 
hisoblanadi: 
- dastur istisno turidan qat'iy nazar tiklanishi mumkin; 
- istisnolarni qayta yuzaga keltirish rejalashtiriladi (ehtimol u jurnalda 
roʻyxatdan oʻtkazilgandan keyin); 
- xatolarni tuzatuvchi – dastur ishini yakunlashidan oldingi oxirgi chora. 
Biroq, 
ishlov 
beruvchilar 
ishlab 
chiqilmagan 
(masalan, 
OutOfMemoryException) istisnolar bilan shugʻullanmaslik uchun ma'lum turdagi 
istisnolarni aniqlash odatiy holdir. Turli xil tipdagi istisnolarni koʻplab catch 
konstruksiyalari yordamida tutish mumkin: 
try 

DoSomething (); 

catch (IndexOutOfRangeException ex) {…}


catch (FormatException ex) 
{…} 
catch (OverflowException ex) {…} 
Berilgan istisno uchun faqat bitta catch konstruksiyasi qoʻllaniladi. Agar Siz 
umumiy istisnolarni (masalan, System.Exception kabi) tutish uchun 
xavfsizlik tarmogʻini ta’minlamoqchi boʻlsangiz, avval maxsus qayta ishlovchilarni 
joylashtirishingiz zarur boʻladi. 
Agar istisno xususiyatlariga kirish talab qilinmasa, istisnolarni oʻzgaruvchilarni 
koʻrsatmasdan qayta ishlash mumkin: 
catch (OverflowException)
// oʻzgaruvchi koʻrsatilmagan
{…}
Bundan tashqari oʻzgaruvchilarni ham, tipni ham tashlab oʻtish mumkin (u 
holda barcha istisnolar tutiladi): 
catch {…} 
Istisnolarni filtrlash 
C# 6.0 dan boshlab catch konstruksiyalarida when konstruksiyasi yordamida 
istisnolar filtrini koʻrsatish mumkin: 
catch (WebException ex) 
when (ex.Status == WebExceptionStatus.Timeout) 

… 

Agar keltirilgan misolda WebException istisnosi yuzaga keltirilsa, u holda 
when
soʻzidan keyin joylashgan mantiqiy ifoda hisoblanadi. Agar natija false boʻlsa, 
u holda berilgan catch blogi e’tiborga olinmaydi va catch konstruksiyasidan 
keyingi ixtiyoriy operatorlar qaraladi. Istisnolar filtri hisobiga yana oʻsha tipdagi 
istisnolarni takroriy tutish jarayoni ma’noga ega boʻlishi mumkin: 
catch (WebException ex) 
when (ex.Status == qandaydir_holat) 
{…} 
catch (WebException ex) 
when (ex.Status = boshqa_holat) 


{ ... } 
when
konstruksiyasidagi mantiqiy ifoda yon effektlarga ham ega boʻlishi 
mumkin, masalan, tashhis maqsadlari uchun istisnolar haqida ma’lumotlarni jurnalda 
qayd etuvchi metodlarga murojaat qilishi mumkin. 

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