Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.

Slides:



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

der Universität Oldenburg
der Universität Oldenburg
Einführung in die Programmierung Ausführbare Klassen
Real - Time Java Seminar Asynchrone Ereignisse und Asynchroner Kontrolltransfer in Real - Time Java Sönke Eilers.
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
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.
SWITCH - Anweisung.
Verzweigung oder bedingte Anweisung Weiter mit PP.
IF-ELSE-IF-Ketten Weiter mit PP..
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Objekte und Arbeitsspeicher
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.
ARRAY oder FELD oder VEKTOR
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.
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
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 Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
DVG Einführung in Java1 Einführung in JAVA.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Verzweigung.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Socket-Programmierung
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.
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 Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Objektorientiertes Konstruieren
Variablenkonzept Klassisch, in Java Basistyp
Optimale Ursprungsgerade
Klassenhierarchien, Vererbung
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Learning By Doing Übungen GPanel Quadratfenster mit pixelunabhängigen Windowkoordinaten (doubles) Zweckmässige Standardwerte (defaults) 01 x 0 1 y // WbzEx5.java.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
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
Natürliches Programmieren
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Robuste Programme durch Ausnahmebehandlung
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Java Programme nur ein bisschen objektorientiert.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
Mit der Turtle Java Programmieren
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen
 Präsentation transkript:

Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten -Illegale mathematische Operationen - Aufruf einer Methode mit Parametern ausserhalb des erlaubten Bereichs (Nichteinhaltung der Preconditions) Turtle t; t.forward(100); int a = 2; int b = 0; int c = a / b; - Eingabewerte ausserhalb des erlaubten Bereichs (Inputvalidation) - Überlauf von reservierten Speicherbereichen (Arrayindex, Stringlängen, Memorypools) Typische Reaktionen: -Programm od. Computer hängt ohne Fehlermeldung (Absturz) -Fehlermeldung und Möglichkeit, das Programm höflich zu beenden Hauptproblem: -Schwierig voraussehbar, was alles schief gehen kann (defensive Programmierung) -Fehler kann in einem gewissen Bereich des Programms auftreten. Nach Fehler muss man aus diesem Bereich hinausspringen und den Fehler in einem Fehler- handler bearbeiten (unstrukturierte Programmierung, goto)

Learning By Doing try-catch-Blöcke try {... } catch (AaaException ex) { } catch (BbbException ex) { } finally { }... BbbException geworfen

Learning By Doing Ohne Fehlerabfang // WbzEx16.java import ch.aplu.util.*; public class WbzEx16 { private int[] a = new int[2]; public WbzEx16() { System.out.println( "Array mit zwei Elementen.\n" + "Weise dem zweiten einen Wert zu..."); a[2] = 6; System.out.println("hier geht's weiter"); } public static void main(String[] args) { Console.init(); new WbzEx16(); } Nichts geht weiter

Learning By Doing Mit Fehlerabfang // WbzEx16a.java import ch.aplu.util.*; public class WbzEx16a { private int[] a = new int[2]; public WbzEx16a() { System.out.println( "Array mit zwei Elementen.\n" + "Weise dem zweiten einen Wert zu..."); try { a[2] = 6; } catch (Exception ex) { System.out.println("Exception gefangen"); System.out.println(ex); } System.out.println("Hier geht's weiter..."); } public static void main(String[] args) { Console.init(); new WbzEx16a(); } try { a[2] = 6; } catch (Exception ex) { System.out.println("Exception gefangen"); System.out.println(ex); } Schon besser

Learning By Doing Explizite/implizite Exceptions Klassenhierarchie der Exceptions Explizite Exceptions müssen abgefangen werden (grau) Implizite Exceptions können abgefangen werden Wirft eine Methode eine Exception, so gilt: Beispiel: FileNotFoundException (Subklasse von IOException) Beispiel: ArrayIndexOutOfBoundsException (Subklasse von RuntimeException)

Learning By Doing Exceptions nach oben werfen Exceptions "nach oben werfen" // WbzEx17.java import ch.aplu.util.*; public class WbzEx17 { public WbzEx17() { System.out.println("Gehe schlafen, szssss..."); Thread.currentThread().sleep(3000); System.out.println("bin wieder aufgewacht."); } public static void main(String[] args) { Console.init(); new WbzEx17(); } throws Exception Kein guter Programmier- stil Aber voller try-catch-Blöcke auch nicht!