Middle
Kokie yra patikrintų išimčių apdorojimo būdai?
sobes.tech AI
Atsakymas iš AI
- Naudoti
try-catchbloką: leidžia sugauti išimtį ir ją apdoroti, išvengiant programos avarijos. - Nurodyti, kad metodas meta išimtį, naudojant raktinį žodį
throwsmetodo paraše: tai perkelia atsakomybę už apdorojimą į jį kviečiantį kodą. - Paversti tikrinamą išimtį į nepatikrinamą: leidžia perduoti išimtį be aiškaus apdorojimo, tačiau tai gali paslėpti tikrąją problemą.
try-catch naudojimo pavyzdys:
// Pavyzdys, kaip naudoti try-catch apdorojant tikrinamą išimtį
try {
// Kodas, kuris gali išmesti tikrinamą išimtį (pvz., IOException)
FileReader file = new FileReader("my_file.txt");
// Darbas su failu...
} catch (IOException e) {
// IOException apdorojimas
e.printStackTrace(); // Steko išvedimas derinimui
System.err.println("Klaida dirbant su failu: " + e.getMessage());
}
throws naudojimo pavyzdys:
// Metodo paraše nurodyti throws
public void readFile(String fileName) throws IOException {
FileReader file = new FileReader(fileName);
// Darbas su failu...
}
// Kviečiantis kodas turi arba apdoroti IOException, arba jį deklaruoti
public void processFile(String filePath) {
try {
readFile(filePath);
} catch (IOException e) {
System.err.println("Klaida skaitant failą: " + e.getMessage());
}
}
Paversti tikrinamą išimtį į nepatikrinamą:
// Pavyzdys, kaip paversti tikrinamą išimtį į nepatikrinamą
public void unsafeOperation() {
try {
// Kodas, kuris gali išmesti tikrinamą išimtį
throw new IOException("Pavyzdinė IOException")
} catch (IOException e) {
// Paversti į nepatikrinamą išimtį
throw new RuntimeException("Klaida operacijoje", e);
}
}