Sobes.tech
Middle

Koji tip izuzetka u Javi nije moguće obraditi?

sobes.tech АИ

Одговор од АИ

Greška. Ovo su ozbiljni problemi od kojih se ne može razumno oporaviti u aplikaciji, na primer, istrošenost memorije (OutOfMemoryError) ili prelivanje steka (StackOverflowError). Oni ukazuju na kritične kvarove u okruženju Java Virtual Machine (JVM).

Za razliku od Exception (koja može biti proverena ili neproverena), Error treba uhvatiti samo u izuzetnim slučajevima (na primer, prilikom logovanja), ali ne za nastavak normalnog rada programa.

Primer:

// Ovaj kod demonstrira Error,
// ali se obično ne preporučuje hvatanje Error u produkciji
try {
    // Pokušaj izazivanja OutOfMemoryError (može ne raditi u zavisnosti od podešavanja JVM)
    List<byte[]> lista = new ArrayList<>();
    while (true) {
        lista.add(new byte[1024 * 1024]); // Dodeljujemo mnogo memorije
    }
} catch (OutOfMemoryError e) {
    // Logovanje ili pokušaj zatvaranja
    System.err.println("Kritična greška: nedovoljno memorije!");
    e.printStackTrace();
    // Obično se ovde izvršava logika hitnog zatvaranja
}