Pythonda xatoliklar

Sintaksis xatoliklari 

Dasturchi dasturlash tilining o‘zini ishlatishda xato qilishi mumkin. Masalan, dastur kodini uning yozilishi talablariga rioya qilmagan holda yozish: o‘zgaruvchi nomini raqam bilan boshlash, keraksiz joyga qo‘yilgan nuqta, ochilmay yoki yopilmay qolgan qavslar va hokazo.

Bunday xatoliklar sintaksis xatoliklari deb ataladi. Ular til sintaksisining buzilishi, tinish belgilarining tushirib qoldirilishi natijasida yuzaga keladi.
Python interpretatori noto‘g‘ri iboraga duch kelganida, uni qanday talqin qilishni bilmaydi. Shu boisdan u dasturning bajarilishini to‘xtatadi va xatolik yuz bergan joyni anglatuvchi tegishli xabarni ko‘rsatadi.

EOL (ingl. End of line – qator yakuni) xatoligi sintaksis xatolikning bir turi bo‘lib, odatda, qator oxirida qo‘shtirnoq (birtinoq)ni yopish tushirib qoldirilganda yuzaga keladi.
EOF (ingl. End of function – funksiya yakuni) xatoligi esa funksiya oxirida qavsni yopish tushirib qoldirilganda yuzaga keladi. EOF xatoligining muammoli tomoni shundaki, Python aynan qaysi funksiya yopilmay qolganini ko‘rsata olmaydi va dastur yakuniga ishora qiladi. Dasturchi dastur kodini sinchiklab ko‘zdan kechirib chiqishiga to‘g‘ri keladi. Yana bir eng ko‘p yo‘l qoyiladigan sintaksis xatoliklaridan biri bu – “Indentation Error” 
xatoligidir. Pythonda, vaziyatga qarab, kod qator boshidan joy tashlab yoki joy tashlamasdan yoziladi. Agar asossiz joy tashlansa yoki aksincha, kerakli joy tashlanmasa, “IndentationError”xatoligi yuz beradi.
Ba’zi joylarda esa aksincha, bo‘sh joy tashlash yoddan ko‘tarilganligi sababli sintaksis xatolik yuz beradi. Masalan “if-elif-else” shartlarining, “for”, “while” takrorlash sikllarining yoki “def” funksiyasining tana qismida bunday xatoliklar kuzatilib turadi.

 Istisnolar 

Python qoidalariga ko‘ra, sintaksis xatolari, odatda, xatolik deb ataladi. Ammo aksariyat hollarda dastur sintaksis xatosi bo‘lmasa ham, ishga tushirilganidan so‘ng ba’zi xatoliklarga duch keladi . Bunday xatoliklar istisno deb ataladi. Dastur ishlash jarayonida ko‘plab istisnolarga duch kelishi mumkin.

NameError – lokal yoki global o‘zgaruvchi, funksiya, obyekt nomi noto‘g‘ri yozilganda yoki mavjud bo‘lmagan o‘zgaruvchi, funksiya yoki obyekt chaqirilganda kelib chiquvchi istisno.
TypeError – funksiya yoki qandaydir amalga noto‘g‘ri ma’lumot yuborilganda yuz beradigan istisno.
ValueError – funksiya to‘g‘ri turdagi qiymatni yuborishi natijasida yuzaga keladigan istisno.
IndexErroryangi dasturchilar ko‘p yo‘l qo‘yadigan istisno. U ro‘yxat elementlariga murojaat qilishda, elementga ro‘yxat indekslarida mavjud bo‘lmagan indeks orqali murojaat qilishda yuzaga keladi.
KeyError – lug‘atga mavjud bo‘lmagan kalit orqali murojaat qilish.
ModuleNotFoundError – mavjud bo‘lmagan modulni yuklashda yuz beradigan istisno.
OverflowError - Arifmetik amalning natijasi chop etish uchun juda katta bo‘lganida chaqiriladi.
FloatingPointError - Qo‘zg‘aluvchi nuqtali haqiqiy sonlar ustida amallar ajarishda xatolik yuz berganda chaqiriladi.