Junior
Kaip veikia try-catch konstrukcija Java?
sobes.tech AI
Atsakymas iš AI
Try-catch struktūra naudojama klaidų apdorojimui — tai įvykiai, pažeidžiantys programos normalų srautą.
- try: Kodo blokas, kuriame gali įvykti klaida. Jei klaida įvyksta
trybloke, jis nutraukia veikimą. - catch: Kodo blokas, kuris vykdomas, jei įvyksta tam tikro tipo klaida (nurodyta skliaustuose po
catch). Java ieško tinkamocatchbloko klaidai apdoroti. Jei rastas, vykdomas šio bloko kodas. - finally (nebūtina): Kodo blokas, kuris visada vykdomas po
try-catch, nepriklausomai nuo to, ar įvyko klaida ar ne, ar ji buvo sugauta. Naudojamas išteklių valymui (failų uždarymui, ryšių nutraukimui ir kt.).
public class ExceptionHandlingExample {
public static void main(String[] args) {
try {
// Kodo dalis, galinti sukelti klaidą
int result = 10 / 0; // ArithmeticException
System.out.println("Šis eilutė nebus vykdoma, jei įvyks klaida.");
} catch (ArithmeticException e) {
// Konkretus klaidos tipas apdorojamas
System.err.println("Įvyko aritmetinė klaida: " + e.getMessage());
} catch (Exception e) {
// Bendra klaidų apdorojimo dalis
System.err.println("Įvyko nežinoma klaida: " + e.getMessage());
} finally {
// Visada vykdomas kodas
System.out.println("Finally blokas įvykdytas.");
}
System.out.println("Programa tęsiasi po try-catch.");
}
}
Lyginant try-catch ir throws:
| Žymuo | try-catch | throws |
|---|---|---|
| Tikslas | Klaidos apdorojimas | Atsakomybės perdavimas |
| Vieta | Kodo blokas | Metodų parašas |
| Veiksmas | Sugauti ir apdoroti klaidą | Nurodyti galimą išmetimą |