Back Up Next

Lovljenje izjem - try, catch in finally

 
Java omogoča, da izjeme ulovimo. 
Če mislimo, da lahko v določenem delu kode pride do izjeme, jo postavimo v blok try-catch.
class test {
    public static void main(String argv[ ]) {
        int x=6; int y=3;

        try {   // Začetek bloka
            for (int j=1;j<=10;j++) {
                x=x*j/y;
                y=y-1;
            }
            System.out.println("Rezultat je: " + y);
        }
        catch (Exception e) {   // Ujamemo izjemo
            System.out.println("Prislo je do napake!");
        }
    }
}
Oglejmo si podobni primer in kaj je ta napisal v konzolno okno



 
Če poznamo tipe izjem, ki se lahko zgodijo, lahko po bloku try postavimo več catch blokov:
        try {
            for (int j=1;j<=10;j++) {
                x=x*j/y;
                y=y-1;
            }
            System.out.println("Rezultat je: " + y);
        }
        catch (java.lang.ArithmeticException e) { // Ujamemo aritm. izjemo
            System.out.println("Prislo je do aritmetične napake!");
        }
        catch (Exception e) { // Ujamemo ostale izjeme
            System.out.println("Prislo je do neke napake!");
        }
 

Po bloku catch lahko postavimo tudi blok finally, ki se bo izvršil v vsakem primeru, ne glede na to ali je do izjeme prišlo ali ne. Izvedel se bo tudi, če pride do izjeme v bloku catch!!!

        try {
            for (int j=1;j<=10;j++) {
                x=x*j/y;
                y=y-1;
            }
            System.out.println("Rezultat je: " + y);
        }
        catch (Exception e) {
            System.out.println("Prislo je do aritmetične napake!");
            y=1/0;
        }
        finally { // izvede se, ceprav je v catch prišlo do izjeme!
            System.out.println("To se izvede v vsakem primeru");
        }
Back Up Next