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
}