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ástroj log4j
,
balík Commons 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
-
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á chyba AssertionError
a program skončí.