Sobes.tech
Middle

Koji načini postoje za obradu proveravanih izuzetaka?

sobes.tech АИ

Одговор од АИ

  • Koristite blok try-catch: omogućava hvatanje izuzetka i njegovo obrađivanje, čime se sprečava neočekivano zatvaranje programa.
  • Deklarišite da metoda može baciti izuzetak koristeći ključnu reč throws u potpisu metode: ovo prebacuje odgovornost za obradu na kod koji je poziva.
  • Uključite proveravani izuzetak u neproveravan: omogućava prenošenje izuzetka bez eksplicitnog obrađivanja, ali može sakriti pravi problem.

Primer korišćenja try-catch:

// Primer korišćenja try-catch za obradu proveravanog izuzetka
try {
    // Kod koji može baciti proveravan izuzetak (npr. IOException)
    FileReader file = new FileReader("my_file.txt");
    // Rad sa fajlom...
} catch (IOException e) {
    // Obrada IOException
    e.printStackTrace(); // Prikaz steka poziva za debagovanje
    System.err.println("Greška prilikom rada sa fajlom: " + e.getMessage());
}

Primer korišćenja throws:

// Primer korišćenja `throws` u potpisu metode
public void readFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    // Rad sa fajlom...
}

// Pozivajući kod mora ili da obradi IOException ili da je deklarise u svom potpisu
public void processFile(String filePath) {
    try {
        readFile(filePath);
    } catch (IOException e) {
        System.err.println("Greška pri čitanju fajla: " + e.getMessage());
    }
}

Primer umotavanja proveravanog izuzetka u neproveravan:

// Primer umotavanja proveravanog izuzetka u neproveravan
public void unsafeOperation() {
    try {
        // Kod koji može baciti proveravan izuzetak
        throw new IOException("Primer IOException")
    } catch (IOException e) {
        // Pretvaranje proveravanog izuzetka u neproveravan
        throw new RuntimeException("Otkrivena je greška u operaciji", e);
    }
}