Sobes.tech
Middle

Jaký typ výjimky v Javě nelze zpracovat?

sobes.tech AI

Odpověď od AI

Chyba. Jedná se o vážné problémy, ze kterých nelze rozumně zotavit v aplikaci, například vyčerpání paměti (OutOfMemoryError) nebo přetečení zásobníku (StackOverflowError). Ukazují na kritické selhání v prostředí Java Virtual Machine (JVM).

Na rozdíl od Exception (která může být kontrolovaná nebo nekontrolovaná), by měla být Error zachycena pouze ve výjimečných případech (například při logování), nikoli pro pokračování normálního chodu programu.

Příklad:

// Tento kód demonstruje Error,
// ale obecně se nedoporučuje zachytávat Error v produkci
try {
    // Pokus o vyvolání OutOfMemoryError (může selhat v závislosti na nastavení JVM)
    List<byte[]> seznam = new ArrayList<>();
    while (true) {
        seznam.add(new byte[1024 * 1024]); // Přidělení velké paměti
    }
} catch (OutOfMemoryError e) {
    // Logování nebo pokus o ukončení
    System.err.println("Kritická chyba: nedostatek paměti!");
    e.printStackTrace();
    // Obvykle se zde provádí logika nouzového ukončení
}