Sobes.tech
Middle

Kokie yra patikrintų išimčių apdorojimo būdai?

sobes.tech AI

Atsakymas iš AI

  • Naudoti try-catch bloką: leidžia sugauti išimtį ir ją apdoroti, išvengiant programos avarijos.
  • Nurodyti, kad metodas meta išimtį, naudojant raktinį žodį throws metodo paraše: tai perkelia atsakomybę už apdorojimą į jį kviečiantį kodą.
  • Paversti tikrinamą išimtį į nepatikrinamą: leidžia perduoti išimtį be aiškaus apdorojimo, tačiau tai gali paslėpti tikrąją problemą.

try-catch naudojimo pavyzdys:

// Pavyzdys, kaip naudoti try-catch apdorojant tikrinamą išimtį
try {
    // Kodas, kuris gali išmesti tikrinamą išimtį (pvz., IOException)
    FileReader file = new FileReader("my_file.txt");
    // Darbas su failu...
} catch (IOException e) {
    // IOException apdorojimas
    e.printStackTrace(); // Steko išvedimas derinimui
    System.err.println("Klaida dirbant su failu: " + e.getMessage());
}

throws naudojimo pavyzdys:

// Metodo paraše nurodyti throws
public void readFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    // Darbas su failu...
}

// Kviečiantis kodas turi arba apdoroti IOException, arba jį deklaruoti
public void processFile(String filePath) {
    try {
        readFile(filePath);
    } catch (IOException e) {
        System.err.println("Klaida skaitant failą: " + e.getMessage());
    }
}

Paversti tikrinamą išimtį į nepatikrinamą:

// Pavyzdys, kaip paversti tikrinamą išimtį į nepatikrinamą
public void unsafeOperation() {
    try {
        // Kodas, kuris gali išmesti tikrinamą išimtį
        throw new IOException("Pavyzdinė IOException")
    } catch (IOException e) {
        // Paversti į nepatikrinamą išimtį
        throw new RuntimeException("Klaida operacijoje", e);
    }
}