Junior
Jak funguje konstrukce try-catch v Javě?
sobes.tech AI
Odpověď od AI
Konstrukce try-catch se používá k ošetření výjimek, což jsou události narušující normální tok provádění programu.
- try: Blok kódu, ve kterém může potenciálně dojít k výjimce. Pokud se uvnitř bloku
tryvyskytne výjimka, je tento blok přerušen. - catch: Blok kódu, který se vykoná, pokud dojde k výjimce určitého typu (uvedeného v závorkách za
catch) v odpovídajícím blokutry. Java hledá vhodný blokcatchpro zpracování výjimky. Pokud ho najde, kód v tomto bloku se vykoná. - finally (volitelné): Blok kódu, který je zaručeně vykonán po blocích try-catch, bez ohledu na to, zda došlo k výjimce nebo ne, nebo zda byla zachycena. Používá se k uvolnění zdrojů (zavření souborů, spojení atd.).
public class ExceptionHandlingExample {
public static void main(String[] args) {
try {
// Kód, který může vyvolat výjimku
int result = 10 / 0; // ArithmeticException
System.out.println("Tato řádka nebude provedena, pokud dojde k výjimce.");
} catch (ArithmeticException e) {
// Zpracování specifického typu výjimky
System.err.println("Došlo k aritmetické chybě: " + e.getMessage());
} catch (Exception e) {
// Obecné zachycení pro jakýkoli jiný typ výjimky
System.err.println("Došlo k neznámé chybě: " + e.getMessage());
} finally {
// Kód, který se vždy vykoná
System.out.println("Blok finally byl vykonán.");
}
System.out.println("Program pokračuje po try-catch.");
}
}
Porovnání try-catch a throws:
| Vlastnost | try-catch | throws |
|---|---|---|
| Cíl | Zpracování výjimek | Delegování odpovědnosti |
| Místo | Blok kódu | Signatura metody |
| Akce | Zachytit a zpracovat výjimku | Uvádí možnost vyvolání výjimky |