PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Konzepte objektorientierter Systeme
Kritische Betrachtung
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Real - Time Java Seminar Asynchrone Ereignisse und Asynchroner Kontrolltransfer in Real - Time Java Sönke Eilers.
Ausnahmen HS Merseburg (FH) WS 06/07.
Sortieren mit Binären Bäumen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
IF-ELSE-IF-Ketten Weiter mit PP..
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Java-AG Ausnahmebehandlung Gerhard Gröger.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
UNDO & SELECT Vortrag : Martin Hiersche
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
Abstrakte Klassen, Interface
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Einführung in die Programmierung Datensammlung
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Philipp Ciechanowicz 6. Übung zu Software Engineering WS 2007/2008.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Grundlagen der Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Aufruf einer Methode eines Objektes vom Typ „Bruch“
Optimale Ursprungsgerade
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Robuste Programme durch Ausnahmebehandlung
Prof. Dr. Alois Schütte Advanced System Programming 1 Das concurrent Paket 1 Überblick 2 Lock 3 Condition 4 Queue 5 Executors.
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Praktische Informatik 1
 Präsentation transkript:

PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung treffen!

PRJ 2007/2 Stefan Dissmann Motivation Beispiel: Warteschlange (Liste) variabler Länge mit Länge-festlegen, Anstellen, Aufrufen Was ist bei –Anstellen an volle Warteschlange –Bearbeiten bei leerer Warteschlange –Anlegen einer Warteschlange der Länge 0

PRJ 2007/3 Stefan Dissmann Motivation Eine Lösung: Fehlerwerte aus Methode zurückgeben! Aber nicht möglich bei Methoden mit Rückgaben! Und: Weitere Bearbeitung kompliziert!

PRJ 2007/4 Stefan Dissmann Exceptions Daher: Eigenes Konstrukt in JAVA: exception Idee: Jede Methode kann alternativ ein exception-Objekt zurückgeben!

PRJ 2007/5 Stefan Dissmann Exceptions Beispiel: void nächster (int eintrag) throws Leer { if (belegt()) { … ; } else throw new Leer(); }

PRJ 2007/6 Stefan Dissmann Exceptions Beispiel: void nächster (int eintrag) throws Leer { if (belegt()) { … ; } else throw new Leer(); } Angabe des Typs des möglichen zusätzlichen Rückgabeobjektes

PRJ 2007/7 Stefan Dissmann Exceptions Beispiel: void nächster (int eintrag) throws Leer { if (belegt()) { … ; } else throw new Leer(); } Werfen eines solchen Rückgabeobjektes

PRJ 2007/8 Stefan Dissmann Exceptions Vereinbarung der Ausnahmeklasse: class Leer extends Exception {} Klasse kann Attribute und Methoden besitzen, muss aber nicht. Klassenhierarchien sind möglich: class FIFOAusnahme extends Exception {} class Voll extends FIFOAusnahme {} class Leer extends FIFOAusnahme {}

PRJ 2007/9 Stefan Dissmann Exceptions Behandlung von geworfenen Exceptions: Abfangen und Bearbeiten mit try { … } catch (…) { … } Weiterleiten Abfangen und neue Exception werfen

PRJ 2007/10 Stefan Dissmann Abfangen von Exceptions Beispiel: class Station { private Warteschlange dieSchlange; … void arbeite() { try { auftrag = dieSchlange.nächster(); //... Bearbeitung des Auftrags } catch (Leer l) { System.out.println(KeinAuftrag); } Ausnahme kann geworfen werden

PRJ 2007/11 Stefan Dissmann Abfangen von Exceptions Beispiel: class Station { private Warteschlange dieSchlange; … void arbeite() { try { auftrag = dieSchlange.nächster(); //... Bearbeitung des Auftrags } catch (Leer l) { System.out.println(Kein Auftrag); } Ausnahme wird gefangen und bearbeitet

PRJ 2007/12 Stefan Dissmann Abfangen von Exceptions Beispiel: class Station { private Warteschlange dieSchlange; … void arbeite() { try { auftrag = dieSchlange.nächster(); //... Bearbeitung des Auftrags } catch (FIFOAusnahme f) { System.out.println(!); } Ausnahmen einer Hierarchie werden gefangen

PRJ 2007/13 Stefan Dissmann Abfangen von Exceptions Beispiel: class Station { private Warteschlange dieSchlange; … void arbeite() { try { auftrag = dieSchlange.nächster(); //... Bearbeitung des Auftrags } catch (Exception e) { System.out.println(!); } Alle Ausnahmen werden gefangen

PRJ 2007/14 Stefan Dissmann Abfangen von Exceptions Beispiel: class Station { private Warteschlange dieSchlange; … void arbeite() { try { auftrag = dieSchlange.nächster(); //... Bearbeitung des Auftrags } catch (Leer l) { System.out.println(kein Auftrag); } catch (Voll v) { System.out.println(??); } Ausnahmen werden nacheinander gefangen

PRJ 2007/15 Stefan Dissmann Weiterleiten von Exceptions Beispiel: class Station { private Warteschlange dieSchlange; … void arbeite() throws Leer { auftrag = dieSchlange.nächster(); //... Bearbeitung des Auftrags } Ausnahmen werden nicht gefangen sondern einfach weitergeleitet

PRJ 2007/16 Stefan Dissmann Abfangen und Werfen von Exceptions Beispiel: class Station { private Warteschlange dieSchlange; … void arbeite() throws OhneAuftrag { try { auftrag = dieSchlange.nächster(); //... Bearbeitung des Auftrags } catch (Leer l) { throw new OhneAuftrag(); }

PRJ 2007/17 Stefan Dissmann Abfangen und Werfen von Exceptions Beispiel: class Station { private Warteschlange dieSchlange; … void arbeite() throws Leer { try { auftrag = dieSchlange.nächster(); //... Bearbeitung des Auftrags } catch (Leer l) { System.out.println(Ohne Auftrag); throw l; }