Junior
Python-da istisna emalının xüsusiyyətləri nələrdir?
sobes.tech Süni İntellekt
AI-dan cavab
Python-da istisnalar, proqramın normal icra axınına maneə törədən hadisələrdir. Onlar səhvləri təmsil edən obyektlərdir.
Xüsusiyyətlər:
- İstisnalar hierarxiyası: Bütün daxili istisnalar siniflərdir və
BaseExceptionəsas sinfindən irsən təşkil olunmuşdur.# Hierarxiya nümunəsi # BaseException -> Exception -> StandardError -> ... # Exception -> ArithmeticError -> ZeroDivisionError try...except...blokları: Əsas istisna idarəetmə mexanizmi.try: # İstisna yarada biləcək kod result = 10 / 0 except ZeroDivisionError: # Xüsusi istisnanın idarə olunması print("Sıfıra bölmə!") except Exception as e: # Digər istisnaların idarə olunması print(f"Xəta baş verdi: {e}")- Çoxsaylı
exceptblokları: Müxtəlif istisna növlərini fərqli şəkildə idarə etməyə imkan verir.try: # Kod value = int("abc") except ValueError: print("Yanlış rəqəm formatı.") except TypeError: print("Yanlış məlumat tipi.") elsebloku:trybloku heç bir istisna baş vermədən tamamlanarsa işləyir.try: # Kod result = 10 / 2 except ZeroDivisionError: print("Sıfıra bölmə!") else: print("Əməliyyat uğurla tamamlandı.")finallybloku: Həmişə işləyir, istisna baş veribsə və ya yox. Resursların azad olunması üçün istifadə olunur.file = None try: file = open("myfile.txt", "r") # Fayldən oxuma except FileNotFoundError: print("Fayl tapılmadı.") finally: if file: file.close() # Faylın mütləq bağlanmasıraiseoperatoru: Açıq şəkildə istisna atmaq üçün istifadə olunur.def divide(a, b): if b == 0: raise ZeroDivisionError("Sıfıra bölmək olmaz") return a / b try: divide(10, 0) except ZeroDivisionError as e: print(f"Xəta: {e}")- Fərdi istisnalar: Öz istisna sinflərinizi
Exceptionvə ya digər mövcud istisna sinfindən irsən yarada bilərsiniz.class CustomError(Exception): pass def process_data(data): if not data: raise CustomError("Məlumatlar boşdur") try: process_data([]) except CustomError as e: print(f"Xəta: {e}") withkontekst menecerindən istifadə etməklə istisnaların idarə olunması: Resurslarla işləməni sadələşdirir, məsələn, fayllar kimi, onları bağlamağı tələb edir.try: with open("myfile.txt", "r") as file: # Fayl ilə işləmək content = file.read() except FileNotFoundError: print("Fayl tapılmadı.") # Fayl avtomatik olaraq `with` blokundan çıxanda bağlanır- İstisnaların zəncirlənməsi: Bir istisna işlənərkən, əvvəlki istisna haqqında məlumat saxlamaq mümkündür (qeyri-rəsmi və ya
raise Exception from another_exceptionistifadə edilərək).
Bu xüsusiyyətlər Python-da səhv idarəetməsi üçün çevik və güclü mexanizm təmin edir, daha etibarlı və uğursuzluqlara davamlı proqramlar yaratmağa imkan verir.