Junior
Python'da istisno bilan ishlashning qanday xususiyatlari bor?
sobes.tech AI
AIdan javob
Python'da istisnolar, dasturning odatdagi bajarilish jarayonini to'xtatadigan voqealardir. Ular xatolarni ifodalaydigan obyektlardir.
Xususiyatlar:
- Istisnolar hierarxiyasi: Barcha o'rnatilgan istisnolar sinflardir va
BaseExceptionasosiy sinfidan meros olish asosida tashkil etilgan.# Hierarxiya misoli # BaseException -> Exception -> StandardError -> ... # Exception -> ArithmeticError -> ZeroDivisionError try...except...bloklari: Asosiy istisno bilan ishlash mexanizmi.try: # Istisno chiqarishi mumkin bo'lgan kod result = 10 / 0 except ZeroDivisionError: # Maxsus istisnoni ishlash print("Nolga bo'lish!") except Exception as e: # Boshqa istisnolarni ishlash print(f"Xato yuz berdi: {e}")- Bir nechta
exceptbloklari: Turli xil istisnolarni turlicha ishlash imkonini beradi.try: # Kod value = int("abc") except ValueError: print("Noto'g'ri raqam formati.") except TypeError: print("Noto'g'ri ma'lumot turi.") elsebloki:trybloki xatolik yuz bermasdan yakunlanganda ishlaydi.try: # Kod result = 10 / 2 except ZeroDivisionError: print("Nolga bo'lish!") else: print("Operatsiya muvaffaqiyatli bajarildi.")finallybloki: Har doim ishlaydi, xatolik yuz berish yoki bermasligidan qat'i nazar. Resurslarni bo'shatish uchun ishlatiladi.file = None try: file = open("myfile.txt", "r") # Fayldan o'qish except FileNotFoundError: print("Fayl topilmadi.") finally: if file: file.close() # Faylni garovli yopishraiseoperatori: Aniq istisnoni chaqirish uchun ishlatiladi.def divide(a, b): if b == 0: raise ZeroDivisionError("Nolga bo'lish mumkin emas") return a / b try: divide(10, 0) except ZeroDivisionError as e: print(f"Xato: {e}")- Maxsus istisnalar: O'z sinflaringizni
Exceptionyoki boshqa mavjud istisno sinfidan meros qilib yaratishingiz mumkin.class CustomError(Exception): pass def process_data(data): if not data: raise CustomError("Ma'lumotlar bo'sh") try: process_data([]) except CustomError as e: print(f"Xato: {e}") withkontekst menejeri yordamida istisnalarni ishlash: Resurslar bilan ishlashni soddalashtiradi, masalan, fayllar kabi, ularni yopishni talab qiladi.try: with open("myfile.txt", "r") as file: # Fayl bilan ishlash content = file.read() except FileNotFoundError: print("Fayl topilmadi.") # Fayl avtomatik ravishda `with` blokidan chiqishda yopiladi- Istisnalarni zanjirlash: Istisnani ishlash jarayonida, avvalgi istisno haqida ma'lumot saqlash mumkin (implicit yoki
raise Exception from another_exceptionyordamida).
Ushbu xususiyatlar Python'da xatoliklarni boshqarish uchun moslashuvchan va kuchli mexanizm taqdim etadi, bu esa ishonchli va nosozliklarga chidamli dasturlar yaratishga imkon beradi.