Junior
Python'da istisna işleme özellikleri nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Python'daki istisnalar, programın normal akışını bozan olaylardır. Hataları temsil eden nesnelerdir.
Özellikler:
- İstisna hiyerarşisi: Tüm yerleşik istisnalar sınıflardır ve
BaseExceptiontemel sınıfından türeyen bir hiyerarşi içinde organize edilmiştir.# Hiyerarşi örneği # BaseException -> Exception -> StandardError -> ... # Exception -> ArithmeticError -> ZeroDivisionError try...except...blokları: İstisna işlemenin ana mekanizmasıdır.try: # İstisna oluşturabilecek kod result = 10 / 0 except ZeroDivisionError: # Belirli bir istisna için işlem print("Sıfıra bölme!") except Exception as e: # Diğer istisnalar için işlem print(f"Bir hata oluştu: {e}")- Çoklu
exceptblokları: Farklı istisna türlerini farklı şekilde işlemek için kullanılır.try: # Kod value = int("abc") except ValueError: print("Geçersiz sayı formatı.") except TypeError: print("Geçersiz veri tipi.") elsebloğu:trybloğu hata olmadan tamamlanırsa çalışır.try: # Kod result = 10 / 2 except ZeroDivisionError: print("Sıfıra bölme!") else: print("İşlem başarıyla tamamlandı.")finallybloğu: Her zaman çalışır, hata olup olmamasına bakılmaksızın. Kaynakları serbest bırakmak için kullanılır.file = None try: file = open("myfile.txt", "r") # Dosyadan okuma except FileNotFoundError: print("Dosya bulunamadı.") finally: if file: file.close() # Dosyanın garantili kapanmasıraiseoperatörü: Açıkça istisna fırlatmak için kullanılır.def divide(a, b): if b == 0: raise ZeroDivisionError("Sıfıra bölme yapılamaz") return a / b try: divide(10, 0) except ZeroDivisionError as e: print(f"Hata: {e}")- Kullanıcı tanımlı istisnalar: Kendi istisna sınıflarınızı
Exceptionveya başka bir mevcut istisna sınıfından türeterek oluşturabilirsiniz.class CustomError(Exception): pass def process_data(data): if not data: raise CustomError("Veriler boş") try: process_data([]) except CustomError as e: print(f"Hata: {e}") withbağlam yöneticisi kullanarak istisna işleme: Kaynaklar üzerinde çalışmayı kolaylaştırır, özellikle dosyalar gibi, açık kapatma gerektiren kaynaklar.try: with open("myfile.txt", "r") as file: # Dosyayla çalışma content = file.read() except FileNotFoundError: print("Dosya bulunamadı.") # Dosya, `with` bloğundan çıkarken otomatik olarak kapanır- İstisnaların zincirlenmesi: Bir istisna işlenirken, önceki istisna hakkında bilgi saklanabilir (örtük veya
raise Exception from another_exceptionkullanılarak).
Bu özellikler, Python'da hata yönetimi için esnek ve güçlü bir mekanizma sağlar, daha güvenilir ve hata toleranslı programlar oluşturmayı mümkün kılar.