Sobes.tech
Middle

Millised on kontrollitud erandite töötlemise viisid?

sobes.tech AI

Vastus AI-lt

  • Kasutada try-catch blokki: 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 throws meetodi 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);
    }
}