Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Seminarium problemowe Temat seminarium: Obsługa błędów za pomocą wyjątków Łukasz Czechowski.

Podobne prezentacje


Prezentacja na temat: "Seminarium problemowe Temat seminarium: Obsługa błędów za pomocą wyjątków Łukasz Czechowski."— Zapis prezentacji:

1 Seminarium problemowe Temat seminarium: Obsługa błędów za pomocą wyjątków Łukasz Czechowski

2 Plan prezentacji 1) Podstawy obsługi wyjątków 2) Klasy i rodzaje wyjątków 3) Przechwytywanie i obsługa wyjątków 4) Tworzenie własnych wyjątków i ich specyfikacja

3 Podstawy obsługi wyjątków Sytuacja wyjątkowa Zgłaszanie/wyrzucanie wyjątku(ang. throwing) - throw - new - procedura obsługi Parametry

4 Podstawy obsługi wyjątków Przykład 1)if(obiekt==null) throw new NullPointerException(); Output: Exception in thread " main" java.lang.NullPointerException at MyClass.main(MyClass.java:47) 2)if(obiekt2==null) throw new NullPointerException(Obiekt2 nie został zainicjowany); Output: Exception in thread " main" java.lang.NullPointerException: Obiekt2 nie został zainicjowany at MyClass.main(MyClass.java:47)

5 Klasy i rodzaje wyjątków

6 Przechwytywanie i obsługa wyjątków Blok try, catch i finally try { //kod który może zgłosić wyjątki } catch (Typ1 w) { //obsługa wyjątków Typ1 } catch (Typ2 w) { //obsługa wyjątków Typ2 } catch (Typ3 w) { //obsługa wyjątków Typ3 } finally { //czynności, które są wykonywane za każdym razem }

7 Przechwytywanie i obsługa wyjątków Przykłady public class MyClass { public static void main(String args[]) { int []tablica=new int[10]; try{ tablica[10]=2; }catch(ArrayIndexOutOfBoundsException e) {} } }

8 Przechwytywanie i obsługa wyjątków Przykłady public class MyClass { public static void main(String args[]) { int []tablica=new int[10]; try{ tablica[10]=2; }catch(ArrayIndexOutOfBoundsException e) { System.out.println(e.getMessage()); System.out.println(e.getLocalizedMessage()); System.out.println(e.toString()); e.printStackTrace(); } }

9 Przechwytywanie i obsługa wyjątków Przykłady Output: e.getMessage() ->10 e.getLocalizedMessage() ->10 e.toString()-> java.lang.ArrayIndexOutOfBoundsException: 10 e.printStackTrace()-> java.lang.ArrayIndexOutOfBoundsException: 10 at MyClass.main(MyClass.java:43)

10 Przechwytywanie i obsługa wyjątków Przykłady public class MyClass { public static void main(String args[]) { int []tablica=new int[10]; try{ tablica[10]=2; }catch(Exception e) { System.out.println(e.getMessage()); System.out.println(e.getLocalizedMessage()); System.out.println(e.toString()); e.printStackTrace(); } }

11 Przechwytywanie i obsługa wyjątków Przykłady Output: e.getMessage() ->10 e.getLocalizedMessage() ->10 e.toString()-> java.lang.ArrayIndexOutOfBoundsException: 10 e.printStackTrace()-> java.lang.ArrayIndexOutOfBoundsException: 10 at MyClass.main(MyClass.java:43)

12 Przechwytywanie i obsługa wyjątków Przykłady class Przyklad { public double przyklad(int a,int b) { if(b==0) throw new ArithmeticException("Divide by zero"); return a/b; } public class MyClass { public static void main(String args[]) { Przyklad np=new Przyklad(); try{ np.przyklad(1,0); }catch(ArithmeticException e){ e.printStackTrace(); }

13 Przechwytywanie i obsługa wyjątków Przykłady Output: java.lang.ArithmeticException: Divide by zero at Przyklad.przyklad(MyClass.java:28) at MyClass.main(MyClass.java:40)

14 Przechwytywanie i obsługa wyjątków Przykłady class Przyklad { public double przyklad(int a,int b){ return podziel(a,b); } public double podziel(int a,int b){ if(b==0) throw new ArithmeticException("Divide by zero"); return a/b;} } public class MyClass { public static void klasa(){ Przyklad np=new Przyklad(); np.przyklad(1,0); } public static void main(String args[]) { try{ klasa(); }catch(ArithmeticException e){ e.printStackTrace(); }

15 Przechwytywanie i obsługa wyjątków Przykłady Output: java.lang.ArithmeticException: Divide by zero at Przyklad.podziel(MyClass.java:31) at Przyklad.przyklad(MyClass.java:27) at MyClass.klasa(MyClass.java:39) at MyClass.main(MyClass.java:45)

16 Przechwytywanie i obsługa wyjątków Przykłady class Punkt { int x,y; } public class MyClass { public static void main(String args[]){ Punkt z=null; int liczba; try{ liczba=1/0; z.x=1; }catch(ArithmeticException e){ System.out.println("Niepoprawna operacja arytmetyczna"); e.printStackTrace(); }catch(Exception e){ System.out.println("Blad ogolny"); e.printStackTrace(); }finally{System.out.println("Wykonywany za kazdym razem");}}

17 Przechwytywanie i obsługa wyjątków Przykłady Output: Dla liczba=1/0; Niepoprawna operacja arytmetyczna Wykonywany za kazdym razem java.lang.ArithmeticException: / by zero at MyClass.main(MyClass.java:44) Dla z.x=1 Blad ogolny Wykonywany za kazdym razem java.lang.NullPointerException at MyClass.main(MyClass.java:44) Dla ; Wykonywany za kazdym razem

18 Przechwytywanie i obsługa wyjątków Przykłady class Punkt { int x,y; } public class MyClass { public static void main(String args[]){ Punkt z=null; int liczba; try{ liczba=2/0; }catch(ArithmeticException e){ System.err.println("Niepoprawna operacja arytmetyczna"); e.printStackTrace(); liczba=0;} z.x=liczba; }catch(Exception e){ System.err.println("Blad ogolny"); e.printStackTrace(); }

19 Przechwytywanie i obsługa wyjątków Przykłady Output: Niepoprawna operacja arytmetyczna java.lang.ArithmeticException: / by zero at MyClass.main(MyClass.java:45) Blad ogolny java.lang.NullPointerException at MyClass.main(MyClass.java:50)

20 Przechwytywanie i obsługa wyjątków Przykłady class Przyklad { public double wynik; public double przyklad(int a,int b) throws Throwable{ try{ wynik=podziel(a,b); }catch(ArithmeticException e){ //throw e; //throw e.fillInStackTrace(); } return wynik; } public double podziel(int a,int b){ return a/b; } }

21 Przechwytywanie i obsługa wyjątków Przykłady public class MyClass { public static void main(String args[]) throws Throwable{ Przyklad np=new Przyklad(); int liczba; try{ np.przyklad(1,0); }catch(Exception e){ System.err.println("Blad ogolny"); e.printStackTrace(); }

22 Przechwytywanie i obsługa wyjątków Przykłady Output: Dla throw e; Blad ogolny java.lang.ArithmeticException: / by zero at Przyklad.podziel(MyClass.java:38) at Przyklad.przyklad(MyClass.java:29) at MyClass.main(MyClass.java:50) Dla throw e.fillInStackTrace(); Blad ogolny java.lang.ArithmeticException: / by zero at Przyklad.przyklad(MyClass.java:32) at MyClass.main(MyClass.java:50)

23 Tworzenie własnych wyjątków i ich specyfikacja Tworzenie własnego wyjątku class MojWyjatek extends Exception{ } Specyfikacja public double przyklad(int a,int b) throws MojWyjatek {. }

24 Tworzenie własnych wyjątków i ich specyfikacja Przykład class MojWyjatek extends Exception{ } class Przyklad { public double przyklad(int a,int b)throws MojWyjatek { if(b==0) throw new MojWyjatek(); return a/b; } public class MyClass { public static void main(String args[]){ Przyklad np=new Przyklad(); try{ np.przyklad(1,0); }catch(MojWyjatek e){e.printStackTrace();}}

25 Tworzenie własnych wyjątków i ich specyfikacja Przykład Output: MojWyjatek at Przyklad.przyklad(MyClass.java:37) at MyClass.main(MyClass.java:51)

26 Tworzenie własnych wyjątków i ich specyfikacja Przykład class MojWyjatek extends Exception{ public MojWyjatek(String inf) super(inf); } class Przyklad { public double przyklad(int a,int b)throws MojWyjatek { if(b==0) throw new MojWyjatek(Dzielenie przez zero); return a/b; } public class MyClass { public static void main(String args[]){ Przyklad np=new Przyklad(); try{ np.przyklad(1,0); }catch(MojWyjatek e){e.printStackTrace();}}

27 Tworzenie własnych wyjątków i ich specyfikacja Przykład Output: MojWyjatek: Dzielenie przez zero at Przyklad.przyklad(MyClass.java:37) at MyClass.main(MyClass.java:51)

28 Tworzenie własnych wyjątków i ich specyfikacja Przykład: zagubiony wyjątek class MojWyjatek extends Exception{ public MojWyjatek(String inf){ super(inf); } class Przyklad { public double przyklad(int a,int b)throws MojWyjatek { if(b==0) throw new MojWyjatek("Dzielenie przez zero"); return a/b; } public void przyklad2(int a,int b)throws MojWyjatek { throw new MojWyjatek("Wyjatek"); }

29 Tworzenie własnych wyjątków i ich specyfikacja Przykład: zagubiony wyjątek public class MyClass { public static void main(String args[])throws MojWyjatek{ Przyklad np=new Przyklad(); try{ np.przyklad(1,0); }finally{ np.przyklad2(2,0); } Output: Exception in thread "main" MojWyjatek: Wyjatek at Przyklad.przyklad2(MyClass.java:38) at MyClass.main(MyClass.java:51)

30 KONIEC Dziękuję za uwagę!


Pobierz ppt "Seminarium problemowe Temat seminarium: Obsługa błędów za pomocą wyjątków Łukasz Czechowski."

Podobne prezentacje


Reklamy Google