Sobes.tech
Middle

Milyen típusú kivétel Java-ban nem kezelhető?

sobes.tech MI

Válasz az MI-től

Hiba. Ezek súlyos problémák, amelyekből nem lehet ésszerűen helyreállni az alkalmazásban, például memória kimerülése (OutOfMemoryError) vagy verem túlcsordulás (StackOverflowError). Ezek kritikus hibákat jeleznek a Java Virtuális Gép (JVM) környezetében.

A Exception-től (amely lehet ellenőrzött vagy ellenőrizetlen) eltérően, a Error-t csak kivételes esetekben (például naplózáskor) kell elkapni, de nem a program normál működésének folytatására.

Példa:

// Ez a kód Error-t demonstrál,
// de általában nem ajánlott Error-t elkapni gyártásban
try {
    // Megpróbálja kiváltani az OutOfMemoryError-t (a JVM beállításaitól függően nem működhet)
    List<byte[]> lista = new ArrayList<>();
    while (true) {
        lista.add(new byte[1024 * 1024]); // Sok memóriát foglal
    }
} catch (OutOfMemoryError e) {
    // Naplózás vagy kényszerített leállítás
    System.err.println("Kritikus hiba: nem elég memória!");
    e.printStackTrace();
    // Általában itt történik a vészhelyzeti leállási logika
}