Middle
Aké spôsoby existujú na spracovanie overených výnimiek?
sobes.tech AI
Odpoveď od AI
- Použite blok
try-catch: umožňuje zachytiť výnimku a spracovať ju, čím sa zabráni neočakávanému ukončeniu programu. - Vyhláste, že metóda môže vyhodiť výnimku pomocou kľúčového slova
throwsv signatúre metódy: toto presúva zodpovednosť za spracovanie na volajúci kód. - Zabaľte kontrolovanú výnimku do nekontrolovanej: umožňuje odovzdať výnimku bez explicitného spracovania, ale môže skryť skutočný problém.
Príklad použitia try-catch:
// Príklad použitia try-catch na spracovanie kontrolovanej výnimky
try {
// Kód, ktorý môže vyhodiť kontrolovanú výnimku (napríklad, IOException)
FileReader file = new FileReader("my_file.txt");
// Práca so súborom...
} catch (IOException e) {
// Spracovanie IOException
e.printStackTrace(); // Zobrazenie zásobníka volaní pre ladenie
System.err.println("Chyba pri práci so súborom: " + e.getMessage());
}
Príklad použitia throws:
// Príklad použitia `throws` v signatúre metódy
public void readFile(String fileName) throws IOException {
FileReader file = new FileReader(fileName);
// Práca so súborom...
}
// Kód volajúci musí spracovať IOException alebo ju deklarovať vo svojej vlastnej signatúre
public void processFile(String filePath) {
try {
readFile(filePath);
} catch (IOException e) {
System.err.println("Chyba pri čítaní súboru: " + e.getMessage());
}
}
Príklad zabalenia do nekontrolovanej výnimky:
// Príklad zabalenia kontrolovanej výnimky do nekontrolovanej
public void unsafeOperation() {
try {
// Kód, ktorý môže vyhodiť kontrolovanú výnimku
throw new IOException("Príklad IOException")
} catch (IOException e) {
// Prevod kontrolovanej výnimky na nekontrolovanú
throw new RuntimeException("Zistená chyba v operácii", e);
}
}