Kod yazmanın belki de en büyük kısmı, kodu yazmak değil; neden çalışmadığını bulmaktır. Buna hata ayıklama (debugging) denir ve iyi bir programcıyı acemiden ayıran şey, tam da bu beceridir.
Önce hata türünü anlayın
Hatalar üç türlüdür: sözdizimi hataları (kod hiç çalışmaz), çalışma zamanı hataları (çalışırken çöker) ve mantık hataları (çalışır ama yanlış sonuç verir). Çalışma zamanı hatalarını yönetmeyi try/except yazımızda ele aldık.
En basit araç: print
Bir kodun nerede ve neyle bozulduğunu anlamanın en hızlı yolu, ara değerleri ekrana yazdırmaktır. Şüphelendiğiniz yerlere print koyup değişkenlerin gerçekten beklediğiniz değeri taşıyıp taşımadığını görürsünüz.
Hata mesajını okumayı öğrenin
Python bir hata verdiğinde uzun bir “traceback” gösterir. Bu, korkutucu görünse de aslında yol haritasıdır: en alttaki satır genellikle hatanın türünü ve nerede olduğunu tam olarak söyler. Onu okumak, çözümün yarısıdır.
Daha ileri: debugger
Print yeterli olmadığında, kodu satır satır çalıştırıp değişkenleri anlık izleyebileceğiniz bir hata ayıklayıcı (debugger) kullanabilirsiniz. Çoğu kod editörü bunu yerleşik sunar. Kavram için hata ayıklama sayfasına bakabilirsiniz.
İşin hocası ne yapar?
İşin hocası bir hatayla karşılaşınca panik yapmaz; hata mesajını sonuna kadar okur ve sorunu adım adım daraltır. Çünkü her hata, aslında bir ipucudur.
İlgili yazı: Lambda, map ve filter
Sıkça Sorulan Sorular
Debugging (hata ayıklama) nedir?
Bir programdaki hataların bulunması ve düzeltilmesi sürecidir. Kodun neden beklendiği gibi çalışmadığını tespit edip gidermeyi kapsar.
Python’da hata nasıl bulunur?
En basit yöntem, şüphelenilen yerlere print ekleyip değişkenlerin değerini kontrol etmektir. Ayrıca hata mesajındaki traceback okunur ve karmaşık durumlarda kodu satır satır izleyen bir debugger kullanılır.
Traceback nedir?
Python bir hata verdiğinde gösterdiği, hatanın nerede ve neden oluştuğunu anlatan mesajdır. Genellikle en alttaki satır hatanın türünü ve konumunu net biçimde belirtir.
