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
}