Tekshirilgan istisno va ish vaqti istisnosi oʻrtasidagi farq

Tekshirilgan istisno va ish vaqti istisnosi oʻrtasidagi farq
Tekshirilgan istisno va ish vaqti istisnosi oʻrtasidagi farq

Video: Tekshirilgan istisno va ish vaqti istisnosi oʻrtasidagi farq

Video: Tekshirilgan istisno va ish vaqti istisnosi oʻrtasidagi farq
Video: TikTok Prasmotrlar Uchun Nechpul To'laydi? TikTok Monetizatsiya. TikTokda Pul Topish! 2024, Noyabr
Anonim

Teklangan istisno va Runtime istisno

Istisnolar - bu oddiy dastur oqimini buzishi mumkin bo'lgan maxsus turdagi hodisalar. Istisno "istisno" dan keladi. Istisnoni tashlash - istisno ob'ektini yaratish va uni ish vaqti tizimiga topshirish jarayoni. Ish vaqti tizimi istisno ob'ektini qabul qilganda, u teskari tartibda (usullar chaqirilgan) o'tish orqali qo'ng'iroqlar to'plami ichida uni boshqarish uchun kimnidir topishga harakat qiladi. Ish vaqti tizimi, agar istisno ishlov beruvchisi bilan usul topsa, muvaffaqiyatli bo'ladi. Istisno ishlov beruvchisi - bu istisnoni rasmiy ravishda hal qila oladigan kod blokidir. Agar ish vaqti tizimi mos ishlov beruvchini topsa, u istisno ob'ektini ishlov beruvchiga uzatadi. Bu istisnoni qo'lga olish deb ataladi. Biroq, istisnoni hal qilishning iloji bo'lmasa, dastur to'xtatiladi. Java-da istisnolar Throwable sinfidan meros bo'lib o'tadi. Belgilangan istisnolar kompilyator tomonidan ishlov beriladigan istisnolardir. Ish vaqti istisnolari kompilyator tomonidan tekshirilmagan istisnolar turidir.

Tekshirilgan istisno nima?

Checked Istisnolar java.lang.exception sinfining obyektlari yoki uning quyi sinflaridir (java.lang. RuntimeException va uning quyi sinflaridan tashqari). Belgilangan istisnolar kompilyatsiya vaqtida "tekshiriladi". Bu shuni anglatadiki, dasturchi ushbu istisnolarni qo'lga olishi yoki tashlashi kerak, aks holda kompilyatsiya shikoyat qiladi (kompilyator xatosiga sabab bo'ladi). Shu sababli, ko'plab tekshirilgan istisnolar dasturchilarga juda yaxshi ma'lum. Misol uchun, IOException va uning quyi sinflari istisnolar tekshiriladi va dasturchi faylga kirish yoki o'zgartirish bilan shug'ullansa, kompilyator barcha mumkin bo'lgan IOExceptions dasturchi tomonidan hal qilinishini tekshiradi.

Ish vaqti istisnosi nima?

Runtime istisnolari java.lang. RuntimeException va uning barcha quyi sinflaridan iborat. Nazariy jihatdan, ular tekshirilgan istisnolar bilan bir xil maqsadga xizmat qiladi va tekshirilgan istisno kabi tashlab yuborilishi yoki boshqarilishi mumkin, ammo ularni qayta ishlash kompilyator tomonidan amalga oshirilmaydi. Shuning uchun, Runtime istisnolari tekshirilmagan istisnolar oilasiga tegishli. NullPointerException, NumberFormatEception, ClassCastException va ArrayIndexOutOfBoundsException Java-da umumiy ish vaqti istisnolaridir.

Tekshirilgan istisno va ish vaqti istisnosi oʻrtasidagi farq nima?

Tekshirilgan istisnolar ham, ish vaqtining istisnolari ham dasturni bajarish paytida istalmagan hodisa boʻlsa-da, ularning farqlari bor. Tekshirilgan istisnolardan foydalanish kompilyator tomonidan amalga oshiriladi, lekin ish vaqti istisnolari emas. Shuning uchun, kodni kompilyatsiya qilish uchun tekshirilgan istisnolarni tashlash yoki qayta ishlash kerak, ammo ish vaqti istisnolariga nisbatan bunday talab yo'q. Shunday qilib, ish vaqti istisnolari xatolar bilan birga belgilanmagan istisnolar toifasiga kiradi.

Tekshirilgan istisnolar bilan kamchilik shundaki, dasturchi buni qanday qilishni bilmasa ham hal qilishi kerak. Shunday qilib, agar dasturchi asl nusxani o'ramasdan yangi istisnoni tashlasa, asl istisnoga tegishli stek izi yo'qoladi. Bu erda ish vaqti istisnolari foydali bo'ladi. Barcha ish vaqti istisnolari bir joyda ko'rib chiqilishi mumkinligi sababli, dasturchilar kamroq kod yozishlari mumkin. Boshqa tomondan, tekshirilgan istisnolar qo'lga olinishi kerakligi sababli, dasturchi uchun ajablanib bo'lmaydi. U har doim qaysi tekshirilgan istisno ma'lum bir usul bilan tashlanishi mumkinligini bilib oladi. Bundan farqli o'laroq, turli xil ish vaqti istisnolari dasturchining bilimisiz o'tkazilishi mumkin.

Tavsiya: