CodeBlanks Logo Icon CodeBlanks

traceback

traceback modülü ile yığın izini öğrenirsin.

traceback modülü

Bir hatanın tüm çağrı yığınını görmek için traceback modülünü kullanırsın. import traceback ile içe aktarır, traceback.format_exc() ile hata anındaki yığın izini bir dize olarak alırsın.

Bu dize, hatanın hangi dosyanın hangi satırında başladığını gösterir; her çağrı çerçevesini sırayla listeler. Üretim uygulamalarında hata günlüğü tutarken yararlıdır; kullanıcıya gösterilemez ama geliştiriciye çok şey söyler.

Uygulama traceback.format_exc ilk satırını yazdır

Önce import traceback satırını ekle. Bir try bloğu içinde x = 1 / 0 çağrısı yap. except ZeroDivisionError: bloğunda tb = traceback.format_exc() ile yığın izini al. print(tb.splitlines()[0]) ile ilk satırı yazdır. İlk satır "Traceback (most recent call last):" olur.

Başlangıç kodu

main.py
# traceback modülünü içe aktar
# try bloğu içinde sıfıra bölme dene
# ZeroDivisionError'ı yakala, yığın izini al
# ilk satırı yazdır

Örnek çözüm

main.py
import traceback

# try bloğu içinde 1 / 0 çağır
try:
    x = 1 / 0
# except ZeroDivisionError: bloğunda format_exc ile yığın izini al
except ZeroDivisionError:
    tb = traceback.format_exc()
    # ilk satırı yazdır
    print(tb.splitlines()[0])

Beklenen çıktı

Traceback (most recent call last):

Yığın izini yorumlama

Bir yığın izi çıktısı üç bölümden oluşur: başlık (Traceback (most recent call last):), çağrı çerçeveleri (dosya adı, satır, kod) ve son satırda hata türü ile ileti. En alttaki satır asıl hatayı söyler.

Çerçeveler yukarıdan aşağı eskiyen çağrıları gösterir; en alttaki çerçeve hatanın oluştuğu yerdir. Hata ayıklarken en alttan başlayıp yukarı doğru gidersin; bu, sorunun kaynağını bulmayı kolaylaştırır.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 traceback.format_exc() ne döndürür?

  • Hatayı fırlatan satır numarasını
  • Yalnızca hata türünü
  • Hata yığın izini dize olarak Doğru cevap
  • Bir dosya nesnesi

Açıklama: Seçim yanlış. Doğru cevap: hata yığın izini dize olarak. Bu dize dosya, satır ve tür bilgisi içerir.

2 format_exc çağrısını tamamla

Soru
import traceback
tb = traceback.____()
Cevap
import traceback
tb = traceback.format_exc()

Açıklama: format_exc yığın izini dize olarak verir.

3 traceback kavramlarını eşleştir

Kavram Anlamı
format_exc Yığın izini dize verir
import traceback Modülü içe aktarır
splitlines Satırlara böler
ZeroDivisionError Sıfıra bölme hatası

Orta seviye bölümündeki tüm dersler