traceback
- Python kursu
- Orta seviye
- Ders 86/116
- 4 dk
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
# 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
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
import traceback
tb = traceback.____()
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ı |