Sobes.tech
Middle

Aký typ výnimky v Jave je nemožné spracovať?

sobes.tech AI

Odpoveď od AI

Chyba. Ide o vážne problémy, z ktorých nie je možné rozumne sa zotaviť v aplikácii, napríklad vyčerpanie pamäte (OutOfMemoryError) alebo pretečenie zásobníka (StackOverflowError). Ukazujú na kritické zlyhania v prostredí Java Virtual Machine (JVM).

Na rozdiel od Exception (ktorá môže byť kontrolovaná alebo nekontrolovaná), by mala byť Error zachytená iba vo výnimočných prípadoch (napríklad pri logovaní), nie na pokračovanie v bežnej prevádzke programu.

Príklad:

// Tento kód demonštruje Error,
// ale všeobecne sa neodporúča zachytávať Error v produkcii
try {
    // Pokus o vyvolanie OutOfMemoryError (môže zlyhať v závislosti od nastavení JVM)
    List<byte[]> zoznam = new ArrayList<>();
    while (true) {
        zoznam.add(new byte[1024 * 1024]); // Pridelenie veľkej pamäte
    }
} catch (OutOfMemoryError e) {
    // Logovanie alebo pokus o zatvorenie
    System.err.println("Kritická chyba: nedostatok pamäte!");
    e.printStackTrace();
    // Zvyčajne sa tu vykonáva logika núdzového zatvorenia
}