Co je ladění programů?
-
Ladění programů je proces, kdy hledáme a odstraňujeme chyby již hotového nebo (častěji) rozpracovaného programu.
-
Existuje pro to mnoho technik. Většinou program pouštíme a sledujeme jeho výstupy pomocí:
-
kontrolních tisků, ovšem na chybový výstup
System.err.println(…)
-
program krokujeme řádkovým debuggerem
jdb
-
krokujeme integrovaným debuggerem v IDE (např. NetBeans), přičemž sledujeme obsahy proměnných
-
pomocí speciálních nástrojů na provádíme záznam běhu programu. K tomu slouží nejrůznější "loggery" — standardní poskytuje od JDK 1.4 balík
java.util.logging
nebo alternativní a zdařilejší nástrojlog4j
, balíkCommons Logging
.
-
Ladění vs. testování
-
Je průběžně používat systémy pro testování jednotek, tj. testovací nástroje typu
JUnit
. -
Lze použít také pokročilé nástroje na běhovou kontrolu platnosti invariantů, vstupních, výstupních a dalších podmínek.
-
Univerzálně lze v Javě použít tzv. aserce, běhové ověření platnosti podmínky.
-
Značíme klíčovým slovem
assert
.
Postup při práci s assert
Postup:
-
Nepotřebujeme žádné speciální běhové knihovny, vše je součástí Javy.
-
Napsat zdrojový program užívající klíčové slovo
assert
(pouze od verze Java v1.4 výše). -
Spustit jej s volbou
-ea
(-enableassertions
). -
Aktivovat aserce lze i selektivně pro některé třídy.
-
Dojde-li za běhu programu k porušení podmínky stanovené za
assert
, vznikne běhová chybaAssertionError
a program skončí.