Maruza atd ki att ax
try operatorlari va istisnolar
Download 88.47 Kb. Pdf ko'rish
|
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 ( х / у); y 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling