Middle
Millised on kontrollitud erandite töötlemise viisid?
sobes.tech AI
Vastus AI-lt
- Kasutada
try-catchblokki: see võimaldab püüda erandi ja seda töödelda, vältides programmi ootamatut sulgemist. - Märkida, et meetod viskab erandi, kasutades võtmesõna
throwsmeetodi signatuuris: see üle võtab vastutuse töötlemise eest kutsuva koodi jaoks. - Muuta kontrollitav erand kontrollimatuks: see võimaldab erandi edasi anda ilma selge töötlemiseta, kuid võib varjata tegeliku probleemi.
try-catch näide:
// Näide, kuidas kasutada try-catch kontrollitava erandi töötlemiseks
try {
// Kood, mis võib visata kontrollitava erandi (nt IOException)
FileReader file = new FileReader("my_file.txt");
// Failiga töötamine...
} catch (IOException e) {
// IOException töötlemine
e.printStackTrace(); // Virna jälgimise väljastamine silumiseks
System.err.println("Viga faili töötlemisel: " + e.getMessage());
}
throws näide:
// Meetodi signatuuris märkimine throws
public void readFile(String fileName) throws IOException {
FileReader file = new FileReader(fileName);
// Failiga töötamine...
}
// Kutsuva kood peab kas töötlema IOException või deklareerima selle oma throws-is
public void processFile(String filePath) {
try {
readFile(filePath);
} catch (IOException e) {
System.err.println("Viga faili lugemisel: " + e.getMessage());
}
}
Kontrollitava erandi muutmine kontrollimatuks:
// Näide, kuidas muuta kontrollitav erand kontrollimatuks
public void unsafeOperation() {
try {
// Kood, mis võib visata kontrollitava erandi
throw new IOException("Näidis IOException")
} catch (IOException e) {
// Muuta kontrollimatuks erandiks
throw new RuntimeException("Töö operatsioonis tekkis viga", e);
}
}