Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Podobne dokumenty
WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Wykład 8: Obsługa Wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Aplikacje w środowisku Java

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746)

Programowanie obiektowe

Java SE Laboratorium nr 4. Temat: Obsługa wyjątków i zdarzeń

Wykład 04. Programowanie obiektowe. Maciej Wołoszyn 17 marca Spis treści

Programowanie Obiektowe Ćwiczenie 4

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Obsługa wyjątków. Rysunek 2-4 Hierarchia dziedziczenia klas wyjątków

Wyjątki (exceptions)

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Programowanie obiektowe

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

Klasy cd. Struktury Interfejsy Wyjątki

Dawid Gierszewski Adam Hanasko

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Obsługa wyjątków. Język C++ WW12

Materiały do zajęć III

Zaawansowane programowanie w języku C++ Wyjątki

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Efekty uboczne błędów

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język C++ wykład VIII

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Klasyfikacja wyjątków

Połączenia między bazami danych i programem w języku Java część 2

Projektowanie algorytmów rekurencyjnych

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Programowanie w Internecie. Java

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Struktura programu: package pl.mojastrona.mojpakiet; import javax.swing.*; import java.awt.container; class MojaKlasa extends Jframe {

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Języki i metody programowania Java Lab2 podejście obiektowe

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Podstawy i języki programowania

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne

Aplikacje RMI

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Programowanie obiektowe

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Programowanie obiektowe

Wykład 4: Klasy i Metody

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Przypomnienie o klasach i obiektach

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001)

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Konwencje obsługi błędów

Programowanie obiektowe

PODSTAWOWE ELEMENTY JĘZYKA JAVA INSTRUKCJE 1. Pętle

Aplikacja wielow tkowa prosty komunikator

Programowanie w Javie wykład 6

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Programowanie obiektowe

Platformy Programistyczne Wykład z Javy dla zaawansowanych

Metody Metody, parametry, zwracanie wartości

DOSTĘP DO METOD I ZMIENNYCH, TABLICE. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla kaŝdego, Helion 2001)

Programowanie w Javie

Systemy Rozproszone - Ćwiczenie 6

Programowanie obiektowe

Programowanie w środowiskach graficznych. Wykład 2.

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Klasy abstrakcyjne, interfejsy i polimorfizm

PROGRAMOWANIE DYNAMICZNE

Algorytmy z powrotami. Algorytm minimax

KLASY, INTERFEJSY, ITP

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wykład 5 Okna MDI i SDI, dziedziczenie

Wybrane algorytmy tablicowe

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

Podstawy programowania obiektowego

Aplikacja wielowątkowa prosty komunikator

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Tworzenie i wykorzystanie usług

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

MATERIAŁY POMOCNICZE DO ĆWICZENIA 3 Klasy i obiekty; atrybuty i metody

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Podstawy języka Java. przygotował:

Multimedia JAVA. Historia

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Java. Programowanie Obiektowe Mateusz Cicheński

Transkrypt:

Wykład 3. Wyjątki 1) Obsługa wyjątków system czasu przebiegu Javy przerwanie programu class Wyjatek_1 //plik Proba_1.java int x; Wyjatek_1(int x_) x = x_; int iloraz() int p = 45/x; //generowanie wyjątku od dzielenia przez 0 //i przerwanie programu return p; int podaj_x() return x; class Proba_1 Wyjatek_1 w1= new Wyjatek_1(0); //3 System.out.println("45/"+w1.podaj_x()+" ="+w1.iloraz()); Exception Throwable Error Klasy dziedziczące po klasie Exception są typami wyjątków, które automatycznie obsługuje Java lub program przy jawnym przechwytywaniu i obsłudze wyjątków w blokach...catch Klasa Error określa wyjątki, które w normalnej sytuacji nie powinny być przechwytywane przez program Do obsługi wyjątków używa się następujących słów kluczowych:...catch, throw, throws, finally Normalne zakończenie programu Zakończenie programu po wystąpieniu błędu dzielenia przez 0 Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 1

2) Przechwytywanie wyjątków przez program kontynuowanie programu po obsłudze wyjątku blok... catch class Wyjatek_2 int x; //plik Proba_2.java Wyjatek_2(int x_) x = x_; int iloraz() int p = -1; p=45/x; //generowanie wyjątku od dzielenia przez 0 catch( ArithmeticException e) //przechwycenie wyjątku System.out.println("Dzielenie przez zero "+e); return p; //kontynuacja programu int podaj_x() return x; public class Proba_2 Wyjatek_2 w1=new Wyjatek_2(0); // wystąpienie i obsługa wyjątku System.out.println("45/"+w1.podaj_x()+" ="+w1.iloraz()); System.out.println("Program dalej działa"); Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 2

3) Przechwytywanie wyjątków przez program w różnych blokach...catch kontynuowanie programu po obsłudze wyjątku class Wyjatek_3 int x[]; Wyjatek_3(int x_, int y_) x = new int [x_]; x[0]=y_; //plik Proba_3.java int element(int p) //generowanie wyjątku od przekroczenia indeksu tablicy int el = x[p]; return el; //przechwycenie wyjątku catch( ArrayIndexOutOfBoundsException e) System.out.println("Przekroczenie zakresu tablicy "+e); return -1; int odwrotnosc() int a=-1; //generowanie wyjątku od dzielenia przez 0 a=1/x[0]; catch(arithmeticexception e) //przechwycenie wyjątku System.out.println("Dzielenie przez zero "+e); return a; //kontynuacja programu Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 3

class Proba_3 Wyjatek_3 w1=new Wyjatek_3(2, 0); // wystąpienie i obsługa wyjątku, gdy nastąpi próba dostępu poza tablicę int a=w1.element(4); System.out.println("Wynik metody element: "+a); // wystąpienie i obsługa wyjątku, gdy nastąpi próba dzielenia przez 0 int b= w1.odwrotnosc(); System.out.println("Wynik metody odwrotnosc: "+b); //wystąpiły dwa wyjątki: przekroczenie indeksu i dzielenie przez 0 //wystąpił błąd dzielenia przez 0 //wystąpił wyjątek przekroczenia indeksu //normalne wykonanie programu brak wyjątków Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 4

4) Przechwytywanie 1 z wielu wyjątków w jednym bloku przez jeden z wielu bloków catch kontynuowanie programu po obsłudze wyjątku Blok zawiera wiele instrukcji, które generują więcej, niż jeden wyjątek Konstrukcja obsługi wyjątków zawiera więcej niż jeden blok catch Wybierany jest pierwszy z bloków catch, dla którego typ wyjątku jest zgodny Przykład class Wyjatek_4 //plik Proba_4.java int x[]; Wyjatek_4(int x_, int y_) x = new int [x_]; x[0]=y_; int element(int p) //1- generowanie wyjątku od dzielenia przez 0 int el=1/x[0]; //2-generowanie wyjątku od przekroczonego indeksu x[p]=el; return el; //przechwycenie wyjątku 1 catch(arithmeticexception e) System.out.println("Dzielenie przez zero "+e); //przechwycenie wyjątku 2 catch(arrayindexoutofboundsexception e) System.out.println("Przekroczenie zakresu tablicy "+e); return -1; //Przypadek poprawnego wykonania programu public class Proba_4 Wyjatek_4 w1=new Wyjatek_4(2, 1); int a=w1.element(0); // wystąpienie i obsługa wyjątku System.out.println("Wynik metody element: "+a); Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 5

//Przypadek przekroczenia indeksu public class Proba_4 Wyjatek_4 w1=new Wyjatek_4(2, 1); int a=w1.element(4); // wystąpienie i obsługa wyjątku System.out.println("Wynik metody element: "+a); //Przypadek dzielenia przez 0 public class Proba_4 Wyjatek_4 w1=new Wyjatek_4(2, 0); int a=w1.element(1); // wystąpienie i obsługa wyjątku System.out.println("Wynik metody element: "+a); //lub obu błędów jednocześnie public class Proba_4 Wyjatek_4 w1=new Wyjatek_4(2, 0); int a=w1.element(4); //wystąpienie i obsługa wyjątku System.out.println("Wynik metody element: "+a); Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 6

5) Ponowne generowanie wyjątku ( ręczne ) - kontynuowanie programu po obsłudze wyjątku class Wyjatek_5 //plik Proba_5.java static void odwrotnosc (int a) //automatyczne wywołanie wyjątku, gdy a=0 int b=1/a; //przechwycenie wyjątku od dzielenia przez 0 System.out.println("Przechwycony wyjatek 1- raz "+e); throw e; //ręczne generowanie powtórzenia wyjątku public class Proba_5 //zagnieżdżona obsługa wyjątku Wyjatek_5.odwrotnosc(0); //wymuszona obsługa wyjątku - throw System.out.println("Przechwycony wyjatek 2- raz "+e); Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 7

6) Generowanie wyjątku ( ręczne ) - kontynuowanie programu po obsłudze wyjątku throw Wystapienie_klasy_pochodnej_Throwable class Wyjatek_6 //plik Proba_6.java static void odwrotnosc () // ręczne generowanie wyjątku throw new ArithmeticException("Generowanie wyjatku"); System.out.println("Przechwycony wyjatek 1- raz "+e); throw e; //ręczne generowanie powtórzenia wyjątku public class Proba_6 //zagnieżdżona obsługa wyjątku Wyjatek_6.odwrotnosc(); //wymuszona obsługa wyjątku - throw System.out.println("Przechwycony wyjatek 2- raz "+e); Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 8

7) Przekazanie obsługi wyjątku do innej części programu - throws typ nazwa metody (lista_parametrów) throws lista_wyjątków class Wyjatek_7 //plik Proba_7.java static void odwrotnosc () throws ArithmeticException throw new ArithmeticException("Generowanie wyjatku"); public class Proba_7 Wyjatek_7.odwrotnosc(); System.out.println("Przechwycony odlozony wyjatek "+e); Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 9

8) Wykonanie wskazanej części metody po bloku po wystąpieniu w niej wyjątku - finally class Wyjatek_8 //plik Proba_8.java static void odwrotnosc () throws ArithmeticException throw new ArithmeticException("Generowanie wyjatku"); //(zamiast catch) wykonanie instrukcji po wystąpieniu wyjątku finally System.out.println("Ten blok zawsze bedzie wykonany"); public class Proba_8 public static void main(string args[]) Wyjatek_8.odwrotnosc(); System.out.println("Przechwycony odlozony wyjatek "+e); Autor: Zofia Kruczkiewicz, Programowanie w Internecie, wykład 3 10