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

Postup:

  1. Nepotřebujeme žádné speciální běhové knihovny, vše je součástí Javy.

  2. Napsat zdrojový program užívající klíčové slovo assert (pouze od verze Java v1.4 výše).

  3. Spustit jej s volbou -ea (-enableassertions).

  4. Aktivovat aserce lze i selektivně pro některé třídy.

  5. Dojde-li za běhu programu k porušení podmínky stanovené za assert, vznikne běhová chyba AssertionError a program skončí.