V programovacím jazyce Java jsou výjimky mechanismem, který umožňuje zvládnout nečekané situace, které mohou nastat při provádění programu. Výjimky umožňují programu reagovat na chyby, neplatné vstupy nebo jiné neočekávané situace, které by jinak mohly způsobit pád aplikace. V tomto vzdělávacím materiálu se dozvíte, jak pracovat s výjimkami v Javě pomocí try-catch bloků a příkazu throw.

1. try-catch bloky - Ošetření výjimek

Try-Catch bloky jsou základním nástrojem pro zachycení a zpracování výjimek v Javě. Struktura try-catch vypadá následovně:

try { // Kód, ve kterém může nastat výjimka } catch (TypVýjimky e) { // Kód, který se provede v případě, že nastane výjimka daného typu }
  • V bloku try zapište kód, ve kterém mohou nastat výjimky.
  • V bloku catch specifikujte typ výjimky, který chcete zachytit (např. ArithmeticException, NullPointerException, atd.). Pokud nastane výjimka tohoto typu v bloku try, program pokračuje v provádění kódu uvnitř bloku catch.

Příklad:

public class TryCatchExample { public static void main(String[] args) { try { int a = 10; int b = 0; int result = a / b; // Dělení nulou - nastane ArithmeticException System.out.println("Výsledek: " + result); } catch (ArithmeticException e) { System.out.println("Chyba: Nelze dělit nulou!"); } } }

2. Příkaz throw - Vlastní výjimky

Kromě zachytávání existujících výjimek můžeme v Javě také vytvářet vlastní výjimky pomocí příkazu throw. To nám umožňuje signalizovat specifickou výjimku, která odpovídá naše potřebám.

Syntaxe příkazu throw:

java
throw new TypVýjimky("Zpráva");
  • TypVýjimky je název třídy, která rozšiřuje třídu Exception nebo jiný typ výjimky.
  • "Zpráva" je volitelná zpráva, která může poskytnout další informace o výjimce.

Příklad:

public class ThrowExample { public static void main(String[] args) { try { int hodnota = -5; if (hodnota < 0) { throw new IllegalArgumentException("Hodnota nemůže být záporná!"); } System.out.println("Hodnota: " + hodnota); } catch (IllegalArgumentException e) { System.out.println("Chyba: " + e.getMessage()); } } }

3. Probublání výjimky k main metodě

Výjimky se mohou v programu vyskytovat na různých místech. Pokud nechceme výjimku zachytávat a zpracovávat na místě, můžeme ji propustit dál pomocí klauzule throws To znamená, že v metodě, kde se výjimka nemůže řešit, označíme, že metoda může vyvolat danou výjimku a bude nutné ji obsloužit v nadřazené metodě nebo ji probublat až do main metody.

Příklad:

public class ExceptionBubbling { public static void main(String[] args) { try { doSomething(); } catch (Exception e) { System.out.println("Chyba: " + e.getMessage()); } } public static void doSomething() throws Exception { // Zde může nastat výjimka, kterou nemůžeme řešit zde throw new Exception("Něco se pokazilo!"); } }

V tomto případě je výjimka vyvolána v metodě doSomething, ale metoda ji nemůže samotnou zachytit, takže ji označujeme klauzulí throws Exception a necháme ji probublat až do main metody, kde je pak zachycena a zpracována.


Naposledy změněno: Sobota, 29. července 2023, 13.43