Preamble

Lasaris

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čí.