Jump to content

Python

  • entries
    53
  • comments
    0
  • views
    405

Hata Yönetimi (Exception Handling)


Doğuhan ELMA

64 views

Exception Handling, programlamanın önemli bir parçasıdır. Bir hata, programın beklenmedik durumlarla başa çıkmasını sağlar ve bu durumlar genellikle çeşitli hatalar veya istisnalar şeklinde karşımıza çıkar. Python'da exception handling, hataları yakalamak ve bu hatalarla uygun bir şekilde başa çıkmak için try, except, finally, raise ve assert anahtar kelimelerini kullanır.

try ve except Blokları: try bloğu, hata olabilecek kodları içerir. Eğer try bloğu içinde bir hata meydana gelirse, Python programını durdurmaz. Bunun yerine hata, yakalanan hata türüyle eşleşen bir except bloğuna yönlendirilir.

try:
    # potansiyel hata oluşturabilecek kodlar
    x = 1 / 0
except ZeroDivisionError:
    # hatayı nasıl ele alacağınız
    print("Sıfıra bölme hatası!")

Birden Fazla except Bloğu: Birden fazla except bloğu kullanabilir ve her birini farklı hata türleri için belirleyebilirsiniz.

try:
    # hata oluşturabilecek kodlar
    x = 1 / 0
except ZeroDivisionError:
    print("Sıfıra bölme hatası!")
except:
    # diğer tüm hataları ele alır
    print("Bir hata meydana geldi!")

else Bloğu: Eğer try bloğunda hata olmazsa, else bloğundaki kodlar çalıştırılır.

try:
    print("Merhaba")
except:
    print("Bir hata meydana geldi!")
else:
    print("Hiç hata meydana gelmedi.")

finally Bloğu: finally bloğu, hata olsun veya olmasın her zaman çalıştırılır. Genellikle kaynakları temizleme, dosyaları kapatma vb. işlemler için kullanılır.

try:
    print("Merhaba")
except:
    print("Bir hata meydana geldi!")
finally:
    print("Bu blok her zaman çalışır.")

raise Anahtar Kelimesi: Kendi hatalarınızı oluşturmak için raise anahtar kelimesini kullanabilirsiniz.

x = -1
if x < 0:
    raise Exception("Negatif sayılar kabul edilmiyor!")

assert Anahtar Kelimesi: assert anahtar kelimesi, belirli bir durumun doğru olup olmadığını kontrol etmek için kullanılır. Eğer durum yanlışsa, bir AssertionError hatası alırsınız.

x = 1
assert x < 0, "Negatif olmayan sayı!"

Bu özellikler, Python'daki exception handlingin temel özellikleridir. Unutmayın ki, istisnaları işlerken dikkatli olunmalıdır çünkü gereksiz yere yakalanan istisnalar, gerçek hataların üzerini örtme ve kodunuzun yanıltıcı hale gelmesine neden olabilir.

 

Python, bir dizi önceden tanımlanmış hata türü veya istisna sınıfı sunar. İşte bunlardan bazıları:

1. `Exception`: Tüm yerleşik, kullanıcı tanımlı istisnaların temel sınıfıdır. Bir catch-all istisna türü olarak kullanılabilir.

2. `StopIteration`: Bir iterator'ın daha fazla öğeyi çıkaracak durumda olmadığını belirtir.

3. `SystemExit`: Python yorumlayıcısının çıkmasını belirtir.

4. `StandardError`: Tüm yerleşik hataların temel sınıfıdır.

5. `ArithmeticError`: Sayısal hesaplama hataları için temel sınıf.

6. `FloatingPointError`: Bir float operasyonu sırasında bir hata meydana geldiğini belirtir.

7. `OverflowError`: Bir aritmetik operasyonun sonucu Python'un tanımlı aralığını aştığında meydana gelir.

8. `ZeroDivisionError`: Herhangi bir sayının sıfıra bölünmesi durumunda oluşur.

9. `AssertionError`: `assert` ifadesi başarısız olduğunda meydana gelir.

10. `AttributeError`: Bir nesnenin tanımlanmamış bir özniteliğine veya metotuna referans verildiğinde meydana gelir.

11. `EOFError`: `input()` fonksiyonu daha fazla giriş beklerken "end of file" (dosya sonu) durumuyla karşılaştığında meydana gelir.

12. `ImportError`: `import` ifadesi bir modülü yükleyemeyi başaramadığında meydana gelir.

13. `KeyboardInterrupt`: Kullanıcı, genellikle Ctrl+C veya Delete tuşuna basarak yürütülen bir Python programına müdahale ettiğinde oluşur.

14. `LookupError`: Dizindeki hatalar için temel sınıf.

15. `IndexError`: Bir dizin dışı durumu için.

16. `KeyError`: Bir sözlükteki bir anahtarın mevcut olmaması durumunda oluşur.

17. `NameError`: Yerel veya global kapsamda tanımlanmamış bir değişken ismi ile karşılaşıldığında oluşur.

18. `UnboundLocalError`: Bir işlev veya metot içindeki yerel bir değişkenin başvurulduğu, ancak değeri olmadığı durumlarda oluşur.

19. `OSError`: İşletim sistemi tarafından bir hata meydana geldiğinde oluşur. 

20. `SyntaxError`: Python sözdiziminde bir hata olduğunda meydana gelir.

Bu liste tamamen kapsayıcı değildir; Python bir dizi başka hata türü de tanımlar ve ayrıca kullanıcıların kendi özel hata türlerini tanımlamasına olanak sağlar. 

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...