Sobes.tech
Middle

Jaké způsoby existují pro zpracování ověřovaných výjimek?

sobes.tech AI

Odpověď od AI

  • Použijte blok try-catch: umožňuje zachytit výjimku a zpracovat ji, čímž zabráníte neočekávanému ukončení programu.
  • Oznámte, že metoda může vyvolat výjimku, pomocí klíčového slova throws v signatuře metody: to přenáší odpovědnost za zpracování na volající kód.
  • Zabalte kontrolovanou výjimku do nekontrolované: umožňuje předat výjimku bez explicitního zpracování, ale může skrýt skutečný problém.

Příklad použití try-catch:

// Příklad použití try-catch pro zpracování kontrolované výjimky
try {
    // Kód, který může vyvolat kontrolovanou výjimku (například, IOException)
    FileReader file = new FileReader("my_file.txt");
    // Práce se souborem...
} catch (IOException e) {
    // Zpracování IOException
    e.printStackTrace(); // Zobrazení zásobníku volání pro ladění
    System.err.println("Chyba při práci se souborem: " + e.getMessage());
}

Příklad použití throws:

// Příklad použití `throws` v signatuře metody
public void readFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    // Práce se souborem...
}

// Volající kód musí buď zpracovat IOException, nebo ji deklarovat ve své vlastní signatuře
public void processFile(String filePath) {
    try {
        readFile(filePath);
    } catch (IOException e) {
        System.err.println("Chyba při čtení souboru: " + e.getMessage());
    }
}

Příklad zabalování do nekontrolované výjimky:

// Příklad zabalování kontrolované výjimky do nekontrolované
public void unsafeOperation() {
    try {
        // Kód, který může vyvolat kontrolovanou výjimku
        throw new IOException("Příklad IOException")
    } catch (IOException e) {
        // Převod kontrolované výjimky na nekontrolovanou
        throw new RuntimeException("Došlo k chybě v operaci", e);
    }
}