44.45.46.Agar ushbu blokda hech qanday istisnolar o'rnatilmagan bo'lsa, u bajarilgandan so'ng, final bloki bajarila boshlaydi . Va keyin try..catch..nihoyat qurish o'z ishini yakunlaydi.Agar sinab ko'rish blokida istisno ro'y bersa, oddiy bajarish tartibi to'xtaydi va CLR istisnoni hal qila oladigan catch blokini qidira boshlaydi. Agar kerakli tutqich bloki topilsa, u bajariladi va u tugagandan so'ng yakuniy blok bajariladi Kerakli catch bloki topilmasa, istisno yuzaga kelganda dastur ishdan chiqadi.Quyidagi misolni ko'rib chiqing: Quyidagi misolni ko'rib chiqing: int x = 5;int y = x / 0;
Console.WriteLine($"Результат: {y}");Console.WriteLine("Конец программы");Bunday holda, raqam 0 ga bo'linadi, bu istisnoga olib keladi. Ilovani disk raskadrovka rejimida ishga tushirganingizda, biz Visual Studio'da istisno haqida ma'lumot beruvchi oynani ko'ramiz: Ushbu oynada System.DivideByZeroException turini ifodalovchi istisno, ya'ni nolga bo'lish urinishini ko'ramiz. Tafsilotlarni ko'rish elementidan foydalanib , siz istisno haqida batafsil ma'lumotni ko'rishingiz mumkin.Va bu holda, biz uchun qolgan yagona narsa dasturning bajarilishini to'xtatishdir.Bunday dasturning ishdan chiqishiga yo'l qo'ymaslik uchun istisnolarni hal qilish uchun try...catch...finally construct dan foydalaning . Shunday qilib, keling, misolni quyidagicha qayta yozamiz: try{ int x = 5; int y = x / 0; Console.WriteLine($"Результат: {y}");}catch{
Console.WriteLine("Возникло исключение!");}finally{
Console.WriteLine("Блок finally");}Console.WriteLine("Конец программы");Bunday holda, biz yana try blokida istisnoga ega bo'lamiz, chunki biz nolga bo'lishga harakat qilmoqdamiz. Va chiziqqa etib borish
dasturning bajarilishi to'xtaydi. CLR ushlash blokini topadi va boshqaruvni ushbu blokga o'tkazadi.Catch blokidan so'ng finally bloki bajariladi.Istisno yuz berdi!nihoyat blokirovkaDasturning oxiri
Shunday qilib, dastur hali ham nolga bo'linishni amalga oshirmaydi va shunga mos ravishda ushbu bo'linish natijasini chop etmaydi, ammo endi u ishdan chiqmaydi va istisno catch blokida ko'rib chiqiladi.Shuni ta'kidlash kerakki, ushbu konstruktsiyada try bloki talab qilinadi . Catch bloki bilan biz finally blokini o'tkazib yuborishimiz mumkin:
Do'stlaringiz bilan baham: |