Middle
Millist tüüpi erandit Java-s ei ole võimalik töödelda?
sobes.tech AI
Vastus AI-lt
Viga. Need on tõsised probleemid, millest ei ole võimalik rakenduses mõistlikult taastuda, näiteks mäeressursi ammendumine (OutOfMemoryError) või virna üleujutus (StackOverflowError). Need näitavad kriitilisi tõrkeid Java Virtual Machine (JVM) keskkonnas.
Erinevalt Exception-ist (mida saab kontrollida või mitte kontrollida), tuleks Error püüda ainult erandjuhtudel (näiteks logimise ajal), kuid mitte programmi normaalse töö jätkamiseks.
Näide:
// See kood demonstreerib Error-i,
// kuid üldiselt ei soovitata Error-i püüda tootmises
try {
// Püüdma põhjustada OutOfMemoryError (võib mitte töötada sõltuvalt JVM-i seadistustest)
List<byte[]> nimekiri = new ArrayList<>();
while (true) {
nimekiri.add(new byte[1024 * 1024]); // Määrame palju mälu
}
} catch (OutOfMemoryError e) {
// Logimine või katse sulgeda
System.err.println("Kriitiline viga: mälu puudus!");
e.printStackTrace();
// Tavaliselt siin toimub hädaolukorra sulgemise loogika
}