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.