Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 11. Vorlesung WS 2001/2002.

Slides:



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

der Universität Oldenburg
Einführung in die Programmierung Ausführbare Klassen
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
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.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Imperative Programmierung Funktionen und Parameter
Einführung in die Programmierung mit Java
Java-AG Ausnahmebehandlung Gerhard Gröger.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
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.
Zusammenfassung Vorwoche
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Copyright 2004 Bernd Brügge Einführung in die Informatik II TUM Sommersemester Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Grundlagen der Programmierung
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Unterprogramme in JAVA
Exception-Handling.
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.
Programmiervorkurs WS 2014/15 Methoden
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 6 SS 2001 Segmentschnitt III.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Robuste Programme durch Ausnahmebehandlung
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 4. Vorlesung WS 2001/2002.
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 12. Vorlesung WS 2002/2003.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Lösung der Hausaufgaben von Vorlesung 10 Universität Bonn Institut für Kartografie und Geoinformation Dipl.-Ing. Dörschlag, Dr. Gröger, Prof. Dr. Plümer.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 12. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Java-Kurs Übung zAusnahmebehandlung: Exceptions zEin-/Ausgabe yDatenströme.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 10. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Java Programme nur ein bisschen objektorientiert.
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Einführung in die Programmierung mit Java
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Implementieren von Klassen
 Präsentation transkript:

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 11. Vorlesung WS 2001/2002

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/022 Übersicht Besprechung der Übungsaufgabe Ausnahmebehandlung –Modellierung von Ausnahmezuständen –Die try-catch-Anweisung

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/023 Übungsaufgabe vom Implementieren Sie die Klassen Figur, Dreieck, Ellipse und Trapez aus dem Beispiel auf Folie 9. Figur soll eine abstrakte Klasse sein. Erweitern Sie jede der vier Klassen um die Methode umfang(). Diese ist bei Figur abstrakt. Erzeugen Sie ein Array, das Dreiecke, Ellipsen und Trapeze enthält. Berechnen Sie die Summe der Umfänge aller geometrischen Figuren im Array.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/ Lösungsschritt: Implementierung Figur fläche() ausgeben()

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/ Lösungsschritt: Erweiterung um Umfang Erweiterung der Klasse Figur.java trivial Umfang eines Dreiecks, das durch seine drei Seitenlängen spezifiziert ist: –trivial (Addition der Seitenlängen) Umfang eines Trapezes, das durch die vier Seitenlängen gegeben ist: –trivial (Addition der Seitenlängen) Umfang einer Ellipse: –schwierig: wird durch ein elliptisches Integral berechnet, das durch keine elementare Formel berechnet werden kann. –Lösung: Näherungsformel (z.B. aus Bronstein et. al. 1996: Taschenbuch der Mathematik):

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/026 Ergänzung zum 2. Lösungsschritt Heutzutage reicht oftmals bereits ein Blick ins Internet, um bestimmte Fachfragen zu beantworten Beispiel: Suchmaschine Eingabe: Umfang Ellipsehttp:// 1. Treffer zeigt auf: (dort wird sogar die Herleitung der Näherungslösung aus dem Integral erläutert) Aber: Kein Treffer bedeutet nicht, dass es keine Lösung gibt!!!

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/ Lösungsschritt: Array mit Figuren Für das Hauptprogramm, das das Array mit den Figuren erzeugt, sollte eine eigene Klasse z.B. namens FigurenArray angelegt werden. –Man könnte die Methode main() zwar in eine der Klassen Trapez, Dreieck oder Ellipse hineinsetzen, jedoch sind alle drei Klassen von der Modellierung her gleichberechtigt und stellen im Prinzip nur einfache „Komponenten“ dar. ein fremder / neuer Benutzer der Klassen müsste raten, von welcher Klasse er main() starten soll –Wenn Trapez, Dreieck oder Ellipse ein Hauptprogramm (Methode main()) enthalten, sollte es ausschließlich zur Funktionsüberprüfung der jeweiligen Klasse dienen.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/028 Ausnahmesituationen in Java Eine Ausnahme (engl. Exception) ist ein Ereignis, das während der Ausführung des Programms auftritt, und den normalen Fluss der Befehle unterbricht. Beispiele für Ausnahmesituationen: bei Berechnungen Division durch Null Mangel an Speicherplatz Zugriff auf Array-Elemente über die Obergrenze hinaus Schreib-/Lesefehler bei Ein- und Ausgabeoperationen –Diskette defekt –Netzwerkverbindung zusammengebrochen –Festplatte voll –zu öffnende Datei nicht vorhanden usw.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/029 Ausnahmebehandlung in Java (I) Java unterstützt explizite Ausnahmebehandlung: –systematische und übersichtliche Trennung von normalem und fehlerbehandelndem Code Methoden können angeben, ob sie bzw. der in ihnen enthaltene Programmcode Ausnahmesituationen feststellen bzw. auslösen können. Im Falle einer Ausnahme wird ein sog. Exception-Objekt erzeugt und an den Aufrufer der Methode übergeben Eine Exception kann als ein durch eine Datenstruktur repräsentiertes Ereignis angesehen werden –Im Falle einer Ausnahmesituation wird diese mit Hilfe der Datenstruktur der Exception gemeldet.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0210 Java-Exceptions Exceptions sind in Java als Klasse realisiert und zwar als Unterklasse der Klasse Throwable.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0211 Java-Exceptions: Spezialisierungen Ausschnitt aus der Klassenhierarchie unterhalb der Klasse Exception:

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0212 Ausnahmebehandlung in Java (II) Ausnahmebehandlung wird in Java über die try-Anweisung realisiert, die aus einem try-Block, einem oder mehreren catch- Konstrukten und optional einem finally-Konstrukt bestehen muss. Syntax: try {... } catch (Exceptiontyp1 name1) {... } catch (Exceptiontyp2 name2) {... } finally {... } Hier steht der Programmcode, in dem Fehler auftreten können Hier werden Fehler der Art Exceptiontyp1 abgefangen Hier werden Fehler der Art Exceptiontyp2 abgefangen Wird durchlaufen, egal ob ein Fehler auftrat oder nicht.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0213 Übung im GIS-Labor Machen Sie folgendes Programm mittels try {...} catch (Exception e) {...} absturzsicher! class Ereignis1 { public static void main (String args[]) { int a; int b = 0; a = 10/b; System.out.println("Programmende wurde erreicht!"); }

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0214 Ausnahmebehandlung in Java (III) Eine Methode muss Exceptions, die sie auslöst, nicht selber abfangen; dies kann auch in einer sie aufrufenden Methode erfolgen. –Exceptions werden auf diese Weise durch die Methoden-Aufrufkette quasi „nach oben“ propagiert. –Fängt eine Methode Exceptions nicht selbst ab, sondern leitet sie weiter, so muss die Exception bei der Definition der Methode angegeben werden. Anderenfalls resultiert ein Kompilierfehler. –Beispiel: Rückgabetyp Methodenname (Parameter) throws Exceptionklasse {... } –wird eine Exception auf oberster Ebene weitergereicht, bricht das Programm mit einer sog. Runtime-Exception ab

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0215 Vorteile durch Einsatz von Java-Exceptions Trennung des Fehlerbehandlungscodes vom normalen Programm. Höhere Absturzsicherheit von Programmen dadurch, dass Methoden erzwingen können, dass Aufrufer eine Fehlerbehandlung vorsehen müssen auf Grund der Exception-Klassenhierarchie können Fehler entweder gruppiert oder auch differenziert behandelt werden Weiterreichen von Fehlern über verschachtelte Methodenaufrufe hinweg

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0216 Beispiel zur getrennten Fehlerbehandlung ohne Exceptions void dateilesen() { öffnen(); if(öffnenok) { dateiInhaltlesen(); if (ok){ interpretieren;... } else fehler; } mit Exceptions try{ öffnen(); dateiInhaltlesen(); interpretieren(); } catch (Exception e) { fehlerbehandlung; }

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0217 Übungsaufgabe Schreiben Sie ein Programm, das ein Integer-Array mit 500 Elementen erzeugt. Füllen Sie das Array mit Zufallszahlen, die im Bereich von 0 bis 99 liegen sollen. Anschliessend soll eine Schleife mal 1.Eine Integer-Zufallszahl von 0 bis 510 erzeugen, 2. welche als Index in das Array verwendet wird und den an der entsprechenden Stelle befindlichen Wert x=a[zufallsindex] ausliest. 3. Dieser Wert x soll als Divisor für eine beliebige Division verwendet werden, z.B.: b = 10 / x Welche Fehler treten bei der Programmausführung auf? Ergänzen Sie das Programm um eine differenzierte Fehlerbehandlung, so dass es nicht mehr abbricht.