Sobes.tech
Middle

Ce metode există pentru tratarea excepțiilor verificate?

sobes.tech AI

Răspuns de la AI

  • Utilizați blocul try-catch: permite capturarea unei excepții și tratarea acesteia, prevenind închiderea neașteptată a programului.
  • Declarați că o metodă poate arunca o excepție, folosind cuvântul cheie throws în semnătura metodei: acest lucru transferă responsabilitatea pentru tratare către codul care o apelează.
  • Înfășurați o excepție verificabilă într-una ne verificabilă: permite propagarea excepției fără tratare explicită, dar poate masca o problemă reală.

Exemplu de utilizare a try-catch:

// Exemplu de utilizare a try-catch pentru tratarea unei excepții verificabile
try {
    // Cod care poate arunca o excepție verificabilă (de exemplu, IOException)
    FileReader file = new FileReader("my_file.txt");
    // Lucru cu fișierul...
} catch (IOException e) {
    // Tratarea IOException
    e.printStackTrace(); // Afișează stiva de apeluri pentru depanare
    System.err.println("Eroare la lucrul cu fișierul: " + e.getMessage());
}

Exemplu de utilizare a throws:

// Exemplu de utilizare a throws în semnătura metodei
public void readFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    // Lucru cu fișierul...
}

// Codul care apelează trebuie să gestioneze IOException sau să o declare în propria semnătură
public void processFile(String filePath) {
    try {
        readFile(filePath);
    } catch (IOException e) {
        System.err.println("Eroare la citirea fișierului: " + e.getMessage());
    }
}

Exemplu de împachetare într-o excepție ne verificabilă:

// Exemplu de împachetare a unei excepții verificabile într-una ne verificabilă
public void unsafeOperation() {
    try {
        // Cod care poate arunca o excepție verificabilă
        throw new IOException("Exemplu de IOException");
    } catch (IOException e) {
        // Transformarea excepției verificabile într-una ne verificabilă
        throw new RuntimeException("A fost detectată o eroare în operație", e);
    }
}