Merhaba arkadaşlar, bu yazımızda Python derslerinin bu serisinde on üçüncü ders olarak Python Hata Yakalama ve İstisnalar konusuna değinmeye çalışacağım. Umarım sizler için faydalı bir yazı olur. İsterseniz hemen başlayalım.
Python Hata Türleri
Python’da, programlama hataları genellikle iki türde toplanır: söntaks hataları ve çalışma zamanı hataları.
- Söntaks hataları: Bu, kodun doğru bir şekilde yazılmamasından kaynaklanır. Örneğin, unutulan noktalı virgül, yanlış indentasyon gibi. Bu tür hatalar kodun derlenmediğinde veya çalıştırılmadan önce tespit edilir.
- Çalışma zamanı hataları: Bu, kodun doğru sözdizimiye sahip olduğu halde, çalışma zamanında oluşan hatalardır. Örneğin, dosya açma hatası, bellek hatası, sıfıra bölme hatası gibi. Bu tür hatalar kodun derlenip çalıştırıldığında tespit edilir.
Python’da, çalışma zamanı hataları için bazı yaygın hata türleri şunlardır:
- NameError: Tanımlanmamış bir değişken kullanılmaya çalışılırken oluşan hata.
- TypeError: Farklı türler arasında geçersiz bir işlem yapılmaya çalışılırken oluşan hata.
- IndexError: Dizi sınırlarının dışına çıkılmaya çalışılırken oluşan hata.
- KeyError: Dizi veya sözlük gibi veri yapılarında belirli bir anahtarın bulunmadığı durumda oluşan hata.
- ValueError: Geçersiz bir değer girilmeye çalışılırken oluşan hata.
- ZeroDivisionError: Sıfıra bölme hatası oluşur.
Bu sadece yaygın olarak karşılaşılan hata türleridir, Python’da daha fazla hata türü mevcuttur. Bunların çözümü için hata mesajlarının dikkatli bir şekilde incelenmesi ve kodun yeniden incelenmesi gerekir.
İstisnalar (Exception)
Python’da, çalışma zamanı hataları için istisnalar (exception) kullanılır. İstisnalar, kodun çalışma zamanında oluşabilecek olası hata durumlarını işaret eder ve programın normal çalışmasını engellemek yerine, hata durumlarını yönetmek için kullanılır. Python’da, birçok built-in istisna sınıfı mevcuttur. Örneğin, NameError
, TypeError
, IndexError
, KeyError
, ValueError
, ZeroDivisionError
gibi
Aşağıdaki kod parçası, bir istisna oluşması durumunda nasıl ele alınabileceğini gösterir:
try: # kod parçası except NameError: # istisna oluştuğunda çalıştırılacak kod except TypeError: # istisna oluştuğunda çalıştırılacak kod except IndexError: # istisna oluştuğunda çalıştırılacak kod
try
bloğu içindeki kod parçası çalıştırılır ve eğer bir istisna oluşursa, oluşan istisnaya karşılık gelen except
bloğu çalıştırılır. Eğer bir istisna oluşmazsa, try
bloğu içindeki kod parçası normal şekilde çalışır ve except
bloğu çalıştırılmaz.
try-except
bloğunun yanı sıra, finally
bloğu da kullanılabilir. finally
bloğu, herhangi bir istisna oluşmasına bakılmaksızın, mutlaka çalıştırılması gereken kodları içerebilir.
try: # kod parçası except NameError: # istisna oluştuğunda çalıştırılacak kod except TypeError: # istisna oluştuğunda çalıştırılacak kod except IndexError: # istisna oluştuğunda çalıştırılacak kod finally: # herhangi bir istisna oluşsa dahi mutlaka çalıştırılacak kod
Bu şekilde, programın çalışma zamanında oluşabilecek hataları yönetmeniz ve kontrol altında tutmanız mümkün olur. Bu sayede, programın çalışmasını engellenmeden hata durumlarını işleyebilir ve kullanıcıya daha iyi bir hizmet sunabilirsiniz. Ayrıca, istisnaların kullanımı sayesinde kodunuzun daha okunaklı ve anlaşılır olmasını sağlayabilirsiniz.
Arkadaşlar bu Python Hata Yakalama ve İstisnalar adlı yazımızın da sonuna gelmiş bulunmaktayız. Umarım faydalı olmuştur.