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č
throwsu 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);
}
}