Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1 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

2 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

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

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

5 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):

6 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://www.google.de 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!!!

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

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

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

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

11 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:

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

13 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!"); }

14 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

15 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

16 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; }

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


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen