Featured, Python

Python Try – Except Hata Bulma Kodları Kullanımı

Merhaba arkadaşlar. Uzun zamandır Python ile ilgili bir yazı yazamamıştım. Daha doğrusu bloğum ile ilgilenememiştim. Ancak Youtube Kanalı‘mda gelen yorumları görünce tekrar vakit yaratmam gerektiğini düşündüm ve tekrar yazı yazmak için vakit yaratma başladım diyebilirim.

Bu yazımda sizlere Python’da aldığınız hataların açıklamalı daha doğrusu hatanın nereden geldiğini ve hatanın nedenini bulmanıza yarayacak olan Try – Except kodlarından bahsetmek istiyorum.

Try – Except Hata Yakalama Kodu Nedir?

Bu kod yazmış olduğunuz programlarda ortaya çıkan hataların nedenini bulmanıza ve vakit kazanmanıza yaramaktadır. Diğer türlü 1000 satırlık bir kodunuz olduğunu düşünelim. Burada sadece ufacık bir işaretleme sizlere fazlasıyla vakit kaybı yaratacaktır. Ancak doğru bir kodlama yani ile bu vakti kaybetmezsiniz.

Çok basit bir örnek verelim. Kullanıcıdan İnput ile veri aldığınız düşünelim ve istediğiniz veri cinsi de sayı olsun. Ancak kullanıcı harf veya noktalama ile giriş yapabilir. Bu durumda bize sadece ValueError hatasını verecektir.

Try – Except Kullanımı ve Örnekleri

Try – Except kullanımın ana temasını ele alalım. Kullanımı aşağıdaki gibidir.

try:
    hata verebileceğini bildiğimiz kodlar
except HataAdı:
    hata durumunda yapılacak işlem

Görüldüğü gibi daha net bir ifade ile anladığınızı düşünüyorum. Şimdi örnekler verelim.

Hemen bir örnek verelim.

birinci_sayı = input("birinci sayı: ")
ikinci_sayı = input("ikinci sayı: ")

try:
    sayı1 = int(birinci_sayı)
    sayı2 = int(ikinci_sayı)
    print(sayı1, "/", sayı2, "=", sayı1 / sayı2)
except ValueError:
    print("Lütfen sadece sayı girin!")

Şimdi buradaki kodlara bakalım. Try bölümü bizim hata alabileceğimiz kısmı ifade eder. Except bölümü ise kullanıcıya vereceğimiz kısımdır.  Biz try ve except kullanmamış olsaydık sadece ValueError hatasını alacaktır. Ancak biz bu noktada müdahale ederek açıklama yapmış olduk ve süreci kısalttık.

Örnek 2:

5/0

Kodunu çalıştırdığımızda aşağıdaki görünümü alırız.

Traceback (most recent call last):
  File "python", line 1, in <module>
ZeroDivisionError: division by zero

Şimdi bu durumu birinci örneğimize ekleyelim ve bir sayının sıfıra bölünmeye çalıştığında bu hatayı alalım.

birinci_sayı = input("birinci sayı: ")
ikinci_sayı = input("ikinci sayı: ")

try:
    sayı1 = int(birinci_sayı)
    sayı2 = int(ikinci_sayı)
    print(sayı1, "/", sayı2, "=", sayı1 / sayı2)
except ZeroDivisionError:
    print("Bir sayıyı 0'a bölemezsiniz!")

Bu kodu çalıştırdığımızda aşağıdaki çıktıyı alırız.

birinci sayı:  5
ikinci sayı:  0
Bir sayıyı 0'a bölemezsiniz!

Birden Fazla Hata Durumu

Şimdi işi biraz daha karıştıralım. Yani hem ValueError hem de ZeroDivisionError hatasının aynı anda kullanımını görelim. Şunu ekleyelim hiç bir fark yok.

 

birinci_sayı = input("birinci sayı: ")
ikinci_sayı = input("ikinci sayı: ")

try:
    sayı1 = int(birinci_sayı)
    sayı2 = int(ikinci_sayı)
    print(sayı1, "/", sayı2, "=", sayı1 / sayı2)
except ZeroDivisionError:
    print("Bir sayıyı 0'a bölemezsiniz!")
except ValueError:
    print("Lütfen sadece sayı giriniz.")

Bu durumda sırasıyla önce 0 girersek ve ikinci çalıştırmamızda harf girersekte aşağıdaki gibi iki çıktı alırız.

birinci sayı:  5
ikinci sayı:  y
Lütfen sadece sayı giriniz.
birinci sayı:  5
ikinci sayı:  0
Bir sayıyı 0'a bölemezsiniz!

Burada iki çıktıyı ayrı ayrı yapmak yerine tek bir grupta alabiliriz. Ancak unutmayın ki bu işlemi ayrı yapmak daha iyidir.

birinci_sayı = input("birinci sayı: ")
ikinci_sayı = input("ikinci sayı: ")

try:
    sayı1 = int(birinci_sayı)
    sayı2 = int(ikinci_sayı)
    print(sayı1, "/", sayı2, "=", sayı1 / sayı2)
except (ValueError, ZeroDivisionError):
    print("Bir hata meydana geldi. Tekrar deneyiniz.")

Bu kodları çalıştırdığımızda ise sadece print kısmında yer alan “Bir hata meydana geldi. Tekrar deneyiniz.” sonucunu alırız. Hemen çıktısına bakalım.

birinci sayı:  5
ikinci sayı:  0
Bir hata meydana geldi. Tekrar deneyiniz.
birinci sayı:  5
ikinci sayı:  y
Bir hata meydana geldi. Tekrar deneyiniz.

NOT:BU KODLAR TEK SEFER ÇALIŞMAKTADIR. YENİDEN ÇALIŞTIRMAK İSTEDİĞİNİZDE BAŞTAN ÇALIŞTIRMANIZ GEREKİR. SİZ HER HATADAN SONRA ÇALIŞMASINI İSTİYORSANIZ, BİR FONKSİYON OLUŞTURMALISINIZ.

while True:
          birinci_sayı = input("birinci sayı(ÇIKMAK İÇİN E TUŞUNA BASINIZ): ")
          if birinci_sayı == "e":
             break
          ikinci_sayı = input("ikinci sayı: ")

          try:
             sayı1 = int(birinci_sayı)
             sayı2 = int(ikinci_sayı)
             print(sayı1, "/", sayı2, "=", sayı1 / sayı2)
          except (ValueError, ZeroDivisionError):
             print("Bir hata meydana geldi. Tekrar deneyiniz.")

Unutmadan ekleyeyim. Bu konu ile ilgili video en kısa zamanda gelecektir.

VİDEO

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.