Kódím.cz
9

Obsluha výjimek

Jak ošetřit chybové stavy v programu pomocí bloku try/except

Výjimky a krokování

Krokování je podobné práci videorozhodčích v hokeji, když sledují zpomalené záběry, aby zjistili, co se v nějaké nepřehledné situaci stalo. Krokování nám umožní zastavit běh programu na konkrétním místě a podívat se, jaké v tom okamžiku existují v programu proměnné a jaké jsou jejich hodnoty. Pokud máme program "zastavený", můžeme nechat spustit jen jeden nebo několik vybraných řádků a sledovat, co se během té doby změní.

Tato technika je důležitá především pro odstraňování chyb a neočekávaného chování programu. Vyzkoušejme si krokování při čtení souboru smeny.txt.

lines = []

with open("smeny.txt", encoding="utf-8") as file:
    for line in file:
        lines.append(line)

avg_sales = []
for line in lines:
    line = line.split(",")
    day, total_sales, hours = line
    avg = int(total_sales) / int(hours)
    avg_sales.append(avg)

print(avg_sales)

V programu umístímě tzv. break point, tj. místo, kde se má běh programu zastavit.

Program tentokrát spustíme z menu.

Vybereme možnost Python Debugger.

A v posledním menu možnost Python File.

Program na vybraném místě zastaví. V levém menu vidíme všechny aktuálně existující proměnné, jejich typy a hodnoty v nich uložené.

Nyní se můžeme rozhodnout, co dál. Máme následující možnosti:

  • Pokračovat, dokud Python nenarazí na další break point (volba Continue).
  • Přejít na další řádek (volba Step Over).

Použijme volbu Step Over, abychom se dostali na další řádek. V levém panelu vidíme změnu hodnoty proměnné line.

Přejdeme-li o řádek dál, uvidíme dvě nové proměnné - total_sales a hours.

Pokud použijeme volbu Continue, program se zastaví, až znovu narazí na náš break point. V proměnné line už vidíme druhý řádek souboru, v proměnných total_sales a hours jsou stále ještě "staré" hodnoty.