2.7.3. Vyvolání výjimky

Potřebujeme-li vyvolat v programu vlastní výjimku, je třeba nejprve vytvořit vhodnou třídu, odvozenou od třídy Exception nebo některé její podtřídy. Pokud vystačíme s tím, co nám bázová třída nabízí, může nová třída pro výjimku vypadat třeba takto:

class MojeVyjimka extends Exception { 
   MojeVyjimka(String msg) { super(msg); } 
}

V místě, kde chceme výjimku vyvolat, pak pouze vytvoříme instanci třídy MojeVyjimka a použijeme ji jako argument příkazu throw. Ten zajistí vyvolání výjimky a její případné ošetření.

class Vyjimky { 
   static void zpracuj(int x) throws MojeVyjimka 
   { 
     System.out.println("Volani zpracuj " + x); 
     if( x < 0 )  
        throw new MojeVyjimka("Parametr nesmi byt zaporny"); 
   } 
 
   public static void main(String args[])  
   { 
      try { 
         zpracuj(1); 
         zpracuj(-1); 
      } catch( MojeVyjimka e ) {  
         e.printStackTrace();  
      } 
   } 
}

Metoda zpracuj, která vyvolává výjimku MojeVyjimka, musí tuto skutečnost deklarovat ve své hlavičce za klíčovým slovem throws. Nedeklarují se pouze výjimky odvozené od tříd Error a RuntimeException, které mohou potenciálně nastat v každé funkci. Takto je možné již během překladu zkontrolovat, zda jsou všechny nesystémové výjimky správně ošetřeny.