Seminarium problemowe

Slides:



Advertisements
Podobne prezentacje
Wstęp do strumieni danych
Advertisements

C++ wykład 7 ( ) Wyjątki.
Java dla studentów II roku Wydziału Fizyki PW Przemysław Duda, 2012
Mgr inż.Marcin Borkowski Podstawy Java Część II
Mgr inż.Marcin Borkowski Podstawy Java Krótkie wprowadzenie dla studentów Wyższej Szkoły Ekologii i Zarządzania
Programowanie obiektowe
Dzisiejszy wykład Wyjątki.
Bezpieczeństwo wyjątków w C++: OpenGL
Implementacja ekstensji klasy
Nguyen Hung Son Uniwersytet Warszawski
Podstawy języka Java Nguyen Hung Son Uniwersytet Warszawski.
Wybrane elementy języka Java
Szablony (wzorce) Przykład 1: Szablon klasy -
Licznik template<class Count_Type> class Count { public:
RMI I RMI-IIOP Wprowadzenie Co to jest RMI?
Szkolenie dla NaviExpert, Testowanie jednostkowe.
Bartosz Walter Inżynieria oprogramowania Lecture XXX JavaTM – część II Bartosz Walter
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Organizacja Przedsięwzięć Programistycznych Testowanie
Multimedia Obrazy i dźwięki w apletach Javy, praca z tekstem, zdarzenia od myszki, obsługa wyjątków w Javie, aplety z wątkami, animacja poklatkowa.
C++ wykład 7 ( ) Wyjątki. Ogólne spojrzenie na wyjątki Wyjątki zaprojektowano do wspierania obsługi błędów. System wyjątków dotyczy zdarzeń synchronicznych.
Gniazda komunikacji sieciowej w języku Java
.NET Remoting Łukasz Zawadzki.
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
Czytanie, pisanie i rysowanie (czyli klasa I szkoły podstawowej)
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
Język Java Wielowątkowość.
Projektowanie warstwy serwera Spring MVC - uzupełnienie.
Projektowanie warstwy serwera Wprowadzenie. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.
Wyjątki, rzutowanie typów, operator instanceOf
Podstawy C# Grupa .NET PO.
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Programowanie urządzeń mobilnych – wykład IV
Transakcje zarządzane kontenerem
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Podstawy inżynierii oprogramowania Zofia Kruczkiewicz
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
JAVA – wstęp.
W większości języków programowania biblioteki wejścia/wyjścia ukrywają szczegóły obsługi poszczególnych mediów pod abstrakcją strumienia (ang. stream).
Tworzenie aplikacji mobilnych
KOLEKTOR ZASOBNIK 2 ZASOBNIK 1 POMPA P2 POMPA P1 30°C Zasada działanie instalacji solarnej.
JAVA.
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
Java 3 MPDI Programowanie obiektowe W5. Java - obiektowy język programowania stworzony przez firmę Sun Microsystems. Java jest językiem tworzenia programów.
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
1 Strumienie Hierarchie klas strumieniowych, strumienie bajtowe - klasy InputStream i OutputStream i ich metody, klasa File, strumienie plikowe, strumienie.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
OCPJP Inner classes.
Programowanie w języku C++
K URS JĘZYKA C++ – WYKŁAD 7 ( ) Wyjątki.
Technologie internetowe Wykład 7 Kontrola danych użytkownika.
Programowanie sieciowe w Javie Michał Kuciapski
Wyjątki. Po co nam wyjątki? Często pisząc jakiś kod staramy się go uczynić uniwersalnym, jesteśmy w stanie wykryć sytuacje niepoprawne, ale nasz kod może.
PO13-1 / 19 Wykład 13 Wyjątki i ich zgłaszanie Wyłapywanie wyjątków Obsługa wyjątków Wykorzystanie polimorfizmu Filtrowanie wyjątków Błędy w konstruktorach.
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Kolekcje (3) Zbiory. Porównywanie i porządkowanie elementów kolekcji. (c) Krzysztof Barteczko 2014.
do programowania obiektowego w języku Groovy
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Strumienie w języku Java Bartosz Walter InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji:
InMoST, Java – przykładowa aplikacja Bartosz.Michalik
Programowanie Obiektowe – Wykład 6
Dzisiejsze zajęcia będą wyjątkowe…
(według:
Klasy wewnętrzne. Praktyka użycia interfejsów i klas wewnętrznych
Iteracyjno-rozwojowy cykl oprogramowania 3
Tworzenie wątków w Javie
Zapis prezentacji:

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

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

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

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”); Exception in thread " main" java.lang.NullPointerException: Obiekt2 nie został zainicjowany

Klasy i rodzaje wyjątków

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 }

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) {} }

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(); }

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)

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(); }

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)

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();

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)

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(); }

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)

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"); }finally{System.out.println("Wykonywany za kazdym razem");}}

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 java.lang.NullPointerException Dla ;

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");

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)

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;

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(); }

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(); at Przyklad.przyklad(MyClass.java:32) at MyClass.main(MyClass.java:50)

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 { .

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();}}

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)

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();}}

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)

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");

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)

KONIEC Dziękuję za uwagę!