Maruza atd ki att ax
Download 88.47 Kb. Pdf ko'rish
|
8-ma\'ruza
- Bu sahifa navigatsiya:
- Istisnolarni filtrlash
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling