Sobes.tech
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
}