A usulini chaqirishda istisno yuzaga kelsa nima qilasiz?
sobes.tech AI
AIdan javob
Bashorat turiga va biznes mantiqiga qarab:
-
Xatoliklarni boshqarish (try-catch):
catchblokida xatolikni tutib, mos logikani bajarish:- Xatolikni yozib olish.
- Foydalanuvchiga xabar ko’rsatish.
- Qayta tiklashga yoki ishni davom ettirishga harakat qilish (masalan, standart qiymat berish).
- Xatolikni boshqa, mosroq turga o’zgartirish (Checked’dan Unchecked’ga yoki aksincha).
try { methodA(); } catch (SpecificException e) { // Xatolikni yozib olish logger.error("methodA chaqirilayotganda xato", e); // Foydalanuvchiga xabar ko’rsatish mumkin // displayErrorMessage("Xatolik yuz berdi"); // Yoki tiklashga harakat qilish // handleRecoveryLogic(); } catch (AnotherException e) { // Boshqa turdagi xatolikni boshqarish } finally { // Har doim bajariladigan kod (resurslarni tozalash) // closeResource(); } -
Xatolikni uzatish (throws): Agar A metodi xatolikni o’zi hal qila olmasa, uni chaqiruvchi metodga
throwsyordamida uzatadi. Bu metod uni yoki hal qilishi, yoki yana uzatishi kerak.public void methodB() throws SpecificException { methodA(); // methodA SpecificException’ni uzatishi mumkin }Bu, agar xatolik yuqori abstraktsiya darajasida hal qilinishi kerak bo’lsa, qo’llaniladi.
-
Xatolikni e’tiborsiz qoldirish (tavsiya etilmaydi): Xatolikni tutib, hech narsa qilmaslik. Bu yomon amaliyot, chunki xatolarni yashiradi va debuggingni qiyinlashtiradi. Kamdan-kam hollarda, muhim emas va ishga ta’sir qilmaydigan xatoliklar uchun asoslantiriladi.
try { methodA(); } catch (Exception e) { // E’tiborsiz qoldirish... ko’pchilik hollarda juda yomon fikr } -
Ishni to’xtatish: Agar xatolik hal qilinmaydigan bo’lsa va davom ettirish mumkin bo’lmasa, uni uzatishga yoki yangi, masalan, RuntimeException’ni tashlashga ruxsat beriladi, bu ish oqimini to’xtatadi.
Tanlov kontekstga, xatolik turiga (Checked yoki Unchecked) va ilovaning xato bilan ishlash siyosatiga bog’liq. Xatoliklarni boshqarish tizimli va debugging uchun yetarli ma’lumotlarni taqdim etishi muhim.