Exceptions. Programmiermethodik. Eva Zangerle Universität Innsbruck
|
|
- Lothar Jaeger
- vor 7 Jahren
- Abrufe
Transkript
1 Exceptions Programmiermethodik Eva Zangerle Universität Innsbruck
2 Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle Themen Generische Programmierung Java Collection-Framework Libraries Streams Unit-Tests GUI-Programmierung Entwurfsmuster Java Virtual Machine Ausblick Assertions Ausnahmen (Exceptions) 2
3 Motivation Fehler können unerwartet auftreten. Programme müssen auf Fehlersituationen vorbereitet werden und kontrolliert darauf reagieren. In C: Fehler werden über (überladene) Rückgabewerte erkannt. kein einheitliches Vorgehen Rückgabewerte werden nicht immer überprüft Programmfluss unterbrochen In Java Assertions für die Absicherung der inneren Programmlogik Exceptions für das Einhalten beliebiger Randbedingungen Programmiermethodik - Ausnahmebehandlung 3
4 Ausnahmen (Exceptions)
5 Motivation In einem ablaufenden Programm können Fehler auftreten. Logische Fehler im Programm Fehlerhafte Bedienung Falsche Eingaben Probleme im Java-Laufzeitsystem Technische Fehler (Speicherplatz, Klasse von Laufzeitumgebung nicht gefunden) Exceptions (Ausnahmen) sind ein Sprachmittel zur kontrollierten Reaktion auf Laufzeitfehler! Assertions sind ein Sonderfall davon. Programmiermethodik - Ausnahmebehandlung 5
6 Exception Handling Verfahren, das mit dem Eintreten einer Ausnahmesituation (Erfüllen bestimmter Bedingungen) den normalen Programmfluss verlässt Kontrolle geht an Mechanismus der Ausnahmebehandlung über Ausnahme in Java ist ein Exception-Objekt Grundfrage: was ist eine Ausnahmesituation? Programmiermethodik - Ausnahmebehandlung 6
7 Exceptions Vorteile durch Exceptions Fehler (und Exceptions) können nicht ignoriert werden und es müssen Maßnahmen zur Behandlung getroffen werden. Code für Programmablauf und Fehlerbehandlung wird getrennt Übersicht und Wartbarkeit Exception-Code nur an zwei Stellen Stelle, an der der Fehler auftritt Stelle, an der der Fehler behandelt wird Exceptions sind dokumentiert und dokumentierbar Exception-Handling Ausnahmesituationen werden an bestimmten Punkten im Programm abgeprüft (und gemeldet). An einer anderen Stelle im Programm steht Code zur Reaktion auf potenzielle Ausnahmesituationen. Programmiermethodik - Ausnahmebehandlung 7
8 Grundprinzip der Ausnahmebehandlung Information über die Ausnahme wird in ein spezielles Objekt verpackt. Instanz der Klasse Exception (oder einer Subklasse davon) Eine Ausnahme kann auch explizit ausgelöst werden. mit Hilfe von throw Die Ausnahme kann an einer bestimmten Stelle (äußerer Block, aufrufende Methode etc.) in einer catch-klausel abgefangen werden. Grundkonstrukt try catch-anweisung Programmiermethodik - Ausnahmebehandlung 8
9 Die try-catch Anweisung (Grundform) Schema try { regulärer Code, in dem Fehler auftreten kann } catch (ExceptionType1 e) { Code für Fehlerbehandlung } catch (ExceptionType2 e) { Code für Fehlerbehandlung } } catch (ExceptionTypex e) { Code für Fehlerbehandlung } try- und catch-block (bzw. Blöcke) folgen unmittelbar aufeinander. Programmiermethodik - Ausnahmebehandlung 9
10 Ablauf (einfach) Normalfall try { } catch (E1 e){ } catch (E2 e){ } catch (E3 e){ }... Ausnahmefall E1 Ausnahmefall E2 Ausnahmefall E4 E4 muss an einer anderen Stelle behandelt werden. Programmiermethodik - Ausnahmebehandlung 10
11 Ablauf (1) Wird eine Ausnahme vom Typ E geworfen: Dann wird eine entsprechende catch-klausel vom Typ E gesucht. Statt E kann auch eine Klausel mit einer Superklasse von E verwendet werden, da E dort substituiert werden kann! Reihenfolge der catch-klauseln ist entscheidend. Eine Ausnahme wird der Reihe nach mit den catch-klauseln verglichen. Ausgeführt wird die erste catch-klausel, zu der die Ausnahme kompatibel ist. Nachfolgende catch-klauseln werden ignoriert. Daher sollte eine Ordnung der catch-klauseln beachtet werden! Von speziell zu allgemein! Wenn zuerst eine allgemeinere Ausnahme angegeben wird (und dann eine speziellere) dann kommt es zu einem Compiler-Fehler. Programmiermethodik - Ausnahmebehandlung 11
12 Ablauf (2) Falls keine catch-klausel gefunden wird, wird in den äußeren try-blöcken gesucht. In verschachtelten try-blöcken Entlang der Methodenaufrufkette (wird noch besprochen) Wird nie eine catch-klausel gefunden (auch nicht in main), dann bricht das Programm ab. Programmiermethodik - Ausnahmebehandlung 12
13 Termination Model / Resumption Model Termination Model Die Ausnahmebehandlung in Java folgt dem Termination-Model. Der Kontrollfluss kehrt nicht mehr an die Stelle zurück, an der die Ausnahme aufgetreten ist (kehrt an Position nach Catch-Blöcken zurück). Resumption Model Eine Alternative ist das Resumption-Model. Bei diesem Modell erfolgt eine Rückkehr an die Aufrufstelle, d.h. das Programm setzt an der Stelle der Ausnahme fort. Wird nicht in Java verwendet. Programmiermethodik - Ausnahmebehandlung 13
14 Beispiel public final class ExceptionTest { public static void main(final String[] args) { try { int x, y; x = Integer.parseInt(args[0]); y = Integer.parseInt(args[1]); System.out.println(x / y); } catch (final NumberFormatException e) { } } System.out.println("Es wurde keine Integerzahl eingegeben!"); Kann parseint() // Zusaetzliche Fehlerbehandlung auftreten. } catch (final ArrayIndexOutOfBoundsException e) { System.out.println("Bitte mindestens 2 Parameter angeben!"); // Zusaetzliche Fehlerbehandlung } catch (final ArithmeticException e) { System.out.println("Division durch 0!"); // Zusaetzliche Fehlerbehandlung } Bei der Division java ExceptionTest Bitte mindestens 2 Parameter angeben! java ExceptionTest 1 a Es wurde keine Integerzahl eingegeben! Programmiermethodik - Ausnahmebehandlung 14
15 Arten von Ausnahmen Systemausnahmen Werden automatisch ausgelöst (illegale Instruktionen) Beispiele ArithmeticException (bei Division durch 0) NullPointerException (Zugriff auf null-zeiger) ArrayIndexOutOfBoundsException (Arrayindex außerhalb des erlaubten Bereichs) Können abgefangen werden, müssen es aber nicht (meist Programmierfehler)! Programmende ohne Abfangen = unchecked exceptions (catch-blöcke werden nicht überprüft beim Kompilieren). Benutzerausnahmen Müssen explizit vom Programmierer ausgelöst werden. throw - Anweisung Java-Bibliothek enthält schon häufige Fehlerarten. z.b. java.io.ioexception Zusätzlich kann man eigene Klassen implementieren und verwenden. Müssen immer abgefangen werden! = checked exceptions (catch-blöcke werden nicht überprüft). Programmiermethodik - Ausnahmebehandlung 15
16 Exception-Klassen Ausnahmen sind in Java Objekte. Enthalten Informationen über die aufgetretenen Fehler. Bieten Methoden an, um auf die Informationen zuzugreifen. Alle Ausnahmen sind in einer Klassenhierarchie gruppiert. Allgemeine Klasse Exception Diverse Unterklassen für spezifische Ausnahmen Dient zur Differenzierung Eine catch-klausel, die eine Klasse E behandeln kann, kann auch alle Unterklassen von E behandeln. Programmiermethodik - Ausnahmebehandlung 16
17 Hierarchie Oberste Klasse ist java.lang.throwable Enthält Methoden zur Fehleranalyse String getmessage() (Text bei Ausnahme) String tostring() (Klassenname + getmessage()) void printstacktrace() Methoden-Aufrufe auf Stack verwaltet Konstruktoren (leer, mit Fehlermeldung, ) Unterklassen java.lang.error Irreparable Fehler java.lang.exception Fehler, die sinnvoll behandelt werden können Es existieren schon bestimmte Subklassen für die Fehlerbehandlung! Programmiermethodik - Ausnahmebehandlung 17
18 Hierarchie (Übersicht, teilweise) Programmiermethodik - Ausnahmebehandlung 18
19 Error Error sind Fehler, die mit der JVM in Verbindung stehen. Beispiel Zu wenig Speicher für die JVM bei der Objekterzeugung vorhanden - OutOfMemoryError Da die Fehler abnormales Verhalten anzeigen, müssen sie auch nicht mit einer catch-klausel aufgefangen werden Ein Auffangen macht wenig Sinn. Wie sollte man auf solch einen Fehler reagieren? Programmiermethodik - Ausnahmebehandlung 19
20 Exception-Hierarchie Exception RuntimeException ArithmeticException NullPointerException IndexOutOfBoundsException. IOException. InterruptedException MyException. Vordefinierte Ausnahmen Selbst definierte Ausnahmen Systemausnahmen (Unchecked Exceptions) Benutzerausnahmen (Checked Exceptions) Programmiermethodik - Ausnahmebehandlung 20
21 Eigene Klasse / Ausnahme auslösen Von der Klasse Exception ableiten class MyException extends Exception { } Hat nur einen Defaultkonstruktor Wenn man eine Nachricht mitgeben möchte: class MyException extends Exception { public MyException(){} public MyException(final String specialinfo){ super(specialinfo); } } Auslösen ( Werfen ) einer Ausnahme mit der throw Anweisung: throw new MyException(); throw new MyException("Falsche Eingabe"); Die throw-anweisung unterbricht den laufenden Code sofort! Siehe externes Beispiel ResourceLoader.java bzw. StackException.java Programmiermethodik - Ausnahmebehandlung 21
22 Weiterreichen von Exceptions Methoden müssen ihre Ausnahmen nicht lokal behandeln, sondern können sie auch weiterreichen. Der Benutzer einer Methode muss mit einer Exception- Signatur darauf hingewiesen werden. Form returntype name(parameterlist) throws exceptiontype1, exceptiontype2 z.b. int test(int x) throws IOException { } Zeigt dem Aufrufer an, dass eine bestimmte Ausnahme geworfen werden könnte. Sollte möglichst spezifisch sein. Wird vom Compiler überprüft (checked exception). Fehlende oder falsche Angaben werden gemeldet. Programmiermethodik - Ausnahmebehandlung 22
23 Weiterreichen von Exceptions (2) Ausnahmen können durchgereicht werden. Methode generiert die Ausnahme nicht selbst, sondern ruft eine Methode auf, die eine Ausnahme generiert. Eine Methode muss in ihrer Signatur angeben: Die Typen der selbst ausgelösten Ausnahmen Die Typen aller Ausnahmen aller aufgerufenen Methoden (RuntimeException und Subklassen davon müssen nicht angegeben werden) Compiler stellt sicher, dass keine Ausnahme einer untergeordneten Methode übersehen wird. Siehe Beispiel ArrayStack.java und StackTest.java Programmiermethodik - Ausnahmebehandlung 23
24 Überladen und Überschreiben Überladen Exception-Signaturen überladener Methoden sind völlig unabhängig. Unterschiedliche Exception-Signaturen reichen nicht aus, um Methoden zu überladen. Überschreiben Exception-Signatur darf bei der Redefinition der Methode dieselben Exceptions wie Oberklasse auslösen Exceptions spezialisieren Exceptions weglassen Bei der Redefinition dürfen in der Exception-Signatur alle Typen aufscheinen, die zu irgendeinem Typ in der Signatur irgendeiner direkten oder indirekten Basisklassenmethode kompatibel sind (auch mehrere Subklassen für eine Exceptionklasse). Siehe externes Beispiel Stack.java bzw. ArrayStack.java Programmiermethodik - Ausnahmebehandlung 24
25 finally Der try catch-block kann nach den catch-klauseln eine finally-klausel enthalten. Die Anweisungen in der finally-klausel werden immer als Abschluss der try-anweisung ausgeführt, egal ob eine Ausnahme auftrat oder nicht. Hat den Zweck Arbeiten, die im try - Block begonnen wurden, sauber abzuschließen. Beispiel Im try-block wird eine Datei geöffnet. Die Datei muss wieder geschlossen werden (egal ob bei der Verarbeitung der Daten ein Fehler auftritt oder nicht). Hinweis: In Java 7 gibt es noch eine andere Möglichkeit. Diese wird im Foliensatz über Streams noch ausführlich besprochen. Auch bei verschachtelten try-anweisungen möglich! Programmiermethodik - Ausnahmebehandlung 25
26 finally (Abarbeitung) try { } catch (E1 e){ } catch (E2 e){ } finally { } Normalfall Ausnahmefall E1 Ausnahmefall E3 E3 wird in der aufrufenden Methode behandelt. Siehe externes Beispiel FinallyTest.java Programmiermethodik - Ausnahmebehandlung 26
27 Exception-Chaining Wenn Methoden Ausnahmen immer weiterreichen Sehr lange Exception-Signaturen Detailfehler auf niederer Ebene müssen an ganz anderer Stelle behandelt werden. Änderungen in der Exception-Signatur würden viele Veränderungen nach sich ziehen. Lösung Exception-Chaining Mehrere Ausnahmen untergeordneter Aufrufe werden aufgefangen. Die Ausnahmen werden zusammengefasst und in einer neuen Ausnahme weitergegeben. Programmiermethodik - Ausnahmebehandlung 27
28 Exception-Chaining (Allgemeines Schema) Allgemeines Schema try { }catch(e1 ex){ throw new MyException(ex); }catch(e2 ex){ throw new MyException(ex); } Ausnahme vom Typ E1 wird in eine Ausnahme vom Typ MyException verpackt. Programmiermethodik - Ausnahmebehandlung 28
29 Chaining bei eigenen Ausnahmen Entsprechende Konstruktoren implementieren Exception-Klasse gibt Beispiele für solche Konstruktoren: Exception(String message, Throwable cause) Exception(Throwable cause) Beispiel für Konstruktor für die MyException-Klasse: MyException(Throwable cause){super(cause);} Oder initcause-methode verwenden: catch (E1 ex) { MyException m = new MyException(); m.initcause(ex); throw m; } Siehe externes Beispiel ResourceLoader.java Programmiermethodik - Ausnahmebehandlung 29
30 Konstruktoren und Ausnahmen Ausnahmen können auch in Konstruktoren verwendet werden. Fehler beim Anlegen eines Objekts sollten vermieden werden. Objekt könnte in einem inkonsistenten Zustand sein. Der Konstruktor sollte die Ausnahme weiterreichen (throws). Aufrufende Methode kann dann entsprechend auf die gescheiterte Erzeugung des Objekts reagieren. Aber: Vorsicht bei finally! wird immer aufgerufen Programmiermethodik - Ausnahmebehandlung 30
31 Debugging von Ausnahmen Die Klasse Throwable liefert einige Methoden (implementierte Klasse). printstacktrace Liefert den Aufrufstack der Methoden. getstacktrace Erlaubt Zugriff auf Stack-Trace-Elemente. getmessage Liefert den Fehlerstring einer Ausnahme (wenn vorhanden). Anwendung (Beispiel) catch(myexception e){ e.printstacktrace(); } Siehe externes Beispiel FinallyTest.java Programmiermethodik - Ausnahmebehandlung 31
32 Java 7 - Multi-Catch (1) Manchmal möchte man mehrere Ausnahmetypen gleichartig behandeln und dafür nur eine catch-klausel verwenden. In Java 7 ist nun das Fangen mehrerer Ausnahmen mit nur einem catch-block möglich. Wird als Multi-Catch bezeichnet. Bei der Aufzählung werden die einzelnen Ausnahmen mit getrennt. Die Variable (im unteren Beispiel e) ist implizit final. Beispiel: try { Hier können sowohl Ausnahmen vom Typ MyException als auch vom Typ OtherException geworfen werden. } catch (MyException OtherException e) { } Gemeinsame Behandlung der unterschiedlichen Ausnahmen Programmiermethodik - Ausnahmebehandlung 32
33 Java 7 - Multi-Catch (2) Die Abarbeitung erfolgt wie bei mehreren catch-blöcken. Neben den Standard-Tests kommen neue Überprüfungen hinzu, ob etwa die exakt gleiche Ausnahme zweimal in der Liste ist oder ob es Widersprüche durch Mengenbeziehungen gibt. Umsortierung der Ausnahmetypen bringt in diesem Fall nichts! Beispiel für fehlerhaftes Multi-Catch (Mengenbeziehung): try { new RandomAccessFile("", ""); } catch (FileNotFoundException IOException e) { } Programmiermethodik - Ausnahmebehandlung 33
34 Java 7 Final Rethrow (1) Immer dann, wenn in einem catch-block ein throw stattfindet, ermittelt der Compiler die im try-block tatsächlich aufgetretenen geprüften Ausnahmetypen. Der im catch genannte Typ für das rethrow wird nicht berücksichtigt. Statt dem gefangenen Typ wird der Compiler den durch die Codeanalyse gefundenen Typ beim rethrow melden. Allgemeine Exception catchen, spezielle Exception throwen. Programmiermethodik - Ausnahmebehandlung 34
35 Java 7 Final Rethrow (2) class Exception_A extends Exception {} class Exception_B extends Exception {} public class Test1 { private void method_a() throws Exception_A {} private void method_b() throws Exception_B {} private static void method_c() throws Exception_A, Exception_B { Test1 l = new Test1(); try { l.method_a(); l.method_b(); } catch (Exception x) { throw x; } } } Programmiermethodik - Ausnahmebehandlung 35
36 Allgemeine Regeln Behandlung Behandle auftretende Ausnahmen, wenn dies sinnvoll möglich ist. Propagiere im Zweifelsfall Ausnahmen an höhere Aufrufebenen weiter. Dabei sollte aber immer ein möglichst aussagekräftiger Ausnahmetyp gewählt werden! Art der Ausnahme Wenn ein Aufrufer eine außergewöhnliche Situation behandeln kann, so sollte eine Benutzerausnahme (checked exception) geworfen werden. Ist ein Aufrufer nicht in der Lage, eine Fehlersituation zu korrigieren, so verwendet man eine Systemausnahme (unchecked exception). Programmiermethodik - Ausnahmebehandlung 36
37 Verwendung von Ausnahmen (1) Ausnahmen werden oft für Preconditions verwendet. Preconditions beziehen sich meist auf Parameter. Die Parameter dürfen meist nicht beliebige Werte annehmen. Ohne Überprüfung kann ein Objekt in einem falschen (inkonsistenten) Zustand sein. Verwendung von try-catch try-catch findet sich meist in übergeordneten Methoden. Je mehr über den aktuellen Programmzustand vorhanden ist, desto besser lässt sich angemessen auf einen Fehler reagieren. Programmiermethodik - Ausnahmebehandlung 37
38 Verwendung von Ausnahmen (2) Eigene Klassen definieren Trade-Off Viele Einzelklassen Feingranulare Behandlung, aber lange Exception-Signaturen oder catch-listen Wenige Einzelklassen Weniger Abfragen, aber schlechte Differenzierung Hierarchien aufbauen (Subklassen von Exception oder RuntimeException) Spezielle Klassen für differenzierte Fehlersituationen Spezielle Klassen nach Fehlerart gruppieren und mit gemeinsamen Basisklassen versehen Detaillierte Ausnahmen anbieten Ausnahme beinhalten weitere Objektvariablen, Beim Werfen der Ausnahme werden diese Objektvariablen belegt (z.b. mit den falschen Parameterwerten etc.) Damit kann der Programmierer auf mehr Information zugreifen! Wann von RuntimeException ableiten? Wenn der Benutzer der Klasse das Problem von vornherein vermeiden kann! RuntimeExceptions stehen meist mit Programmier- und Denkfehlern in Zusammenhang. Programmiermethodik - Ausnahmebehandlung 38
39 Verwendung von Ausnahmen (3) Ausnahmen sollten auch dokumentiert werden Auszug aus "How to Write Doc Comments for the Javadoc Tool": Programmiermethodik - Ausnahmebehandlung 39
40 Verwendung der verschiedenen Basisklassen Abfangen in catch-klauseln Error - nein Exception - nein (würde alle Subklassen abfangen), nur Subklassen davon! RuntimeException nein, eigentlich ein Fehler im Programm, der behoben werden sollte! Werfen Error - ja, eventuell auch eigene Unterklasse! Exception nein (zu allgemein), nur Unterklassen! RuntimeException ja, mit einer eigenen oder einer entsprechenden Subklasse! Programmiermethodik - Ausnahmebehandlung 40
41 Ausnahmen Don't Niemals eine Ausnahme verschwinden lassen! try {... } catch (MyException e) {} Fehler verschwinden nicht von selbst! Programm wird möglicherweise nicht richtig funktionieren (inkonsistente Daten etc.). Ausnahmen sollten niemals Kontrollstrukturen ersetzen!!! Z.B. bei einem Arraydurchlauf nicht auf die Länge überprüfen, sondern auf Ausnahme warten und dann abfangen. Rückgabe von null statt einer Ausnahme im Fehlerfall Ausnahmen müssen behandelt werden, null kann ignoriert werden! Rückgabe von null ist nur in sehr wenigen Fällen sinnvoll. Muss in der aufrufenden Methode separat behandelt werden. Programmiermethodik - Ausnahmebehandlung 41
42 Assertions
43 Assertions allgemein Eine Assertion (Zusicherung) ist ein boolescher-ausdruck, der immer zutreffen muss. Assertions werden beim Programmablauf von der JVM überwacht. Programmabbruch, wenn eine Assertion nicht zutrifft (Error)! Assertions sind einfache Anweisungen. Form assert ausdruck; assert ausdruck:string; ausdruck muss immer true liefern, string enthält eine Fehlermeldung. Beispiele assert a <= b && b <= c; assert x >= 0: "Positives x"; Programmiermethodik - Ausnahmebehandlung 43
44 Arbeitsweise Assertions werden zur Laufzeit ausgewertet. Wenn das Ergebnis false ist, stoppt das Programm mit einem AssertionError. Die nachfolgenden Anweisungen werden nicht mehr ausgeführt. Bei Abbruch wird Information über den Ort der gescheiterten Assertion ausgegeben. Programmiermethodik - Ausnahmebehandlung 44
45 Aktivierung Assertions kosten Rechenzeit. Sie können zur Laufzeit wahlweise aktiviert werden. Deaktiviert sind sie automatisch! Programm muss nicht neu übersetzt werden. Aktivierung im Programm Test (enable assertions) java ea Test Deaktivierung (default, muss nicht angeführt werden; disable assertions) java da Test In Eclipse Unter Run->RunConfigurations Reiter Arguments auswählen. -ea im Feld Vm arguments angeben. Normalerweise während der Entwicklungszeit! Programmiermethodik - Ausnahmebehandlung 45
46 Selektive Aktivierung Assertions können auch selektiv auf der Ebene von Klassen und Packages getrennt aktiviert werden. Assertions in Klasse classname aktivieren: -ea:classname Assertions in Package packagename (3 Punkte müssen angegeben werden): -ea:packagename Mehrere Schalter erlaubt: java -ea:project2 -da:project2.datastore -ea:project2.datastore.store Test Programmiermethodik - Ausnahmebehandlung 46
47 Einsatz von Assertions Sind für Bedingungen geeignet, deren Einhaltung vom Programm selbst garantiert werden kann. z.b. am Ende einer Methode Rechenergebnisse absichern. Nicht für Bedingungen geeignet, die von irgendwelchen äußeren Einflüssen abhängen. z.b. am Anfang einer öffentlichen Methode die Werte der Parameter überprüfen. Programmiermethodik - Ausnahmebehandlung 47
48 Anwendung Überprüfung von Parametern, die an nicht-öffentliche Methoden übergeben werden (nur falsch, wenn das eigene Programm fehlerhaft ist). Verwendung in Postconditions, die am Ende einer Methode erfüllt sein müssen. Überprüfung von Schleifeninvarianten. Markierung von "toten Zweigen" in if- oder case- Anweisungen, die normalerweise niemals erreicht werden sollten (Assertion mit false als Argument). Programmiermethodik - Ausnahmebehandlung 48
49 Beispiel public class AssertionTest { private static int max(final int x, final int y) { return x < y? x : y; } private static int min(final int x, final int y) { return x > y? x : y; } Denkfehler - Falsche Implementierungen! Hier sollten korrekte Werte in maximum und minimum vorhanden sein! } private static void test(final int x, final int y) { final int maximum = AssertionTest.max(x, y); final int minimum = AssertionTest.min(x, y); assert maximum >= minimum : "Maximum kleiner als Minimum"; System.out.println(maximum + " " + minimum); } public static void main(final String[] args) { AssertionTest.test(10, 15); AssertionTest.test(8, 3); AssertionTest.test(2, 2); java AssertionTest } java ea AssertionTest Exception in thread main java.lang.assertionerror: Maximum kleiner als Minimum at AssertionTest.test(AssertionTest.java:13) at AssertionTest.main(AssertionTest.java:18) Programmiermethodik - Ausnahmebehandlung 49
50 Private Invarianten-Methoden (1) Objektvariablen dürfen meist nicht beliebige Werte annehmen. Es gelten bestimmte Bedingungen. Bedingungen werden als Klasseninvarianten bezeichnet. Diese Bedingungen gelten für jedes Objekt der Klasse. Bedingungen können während der Ausführung einer Methode kurzfristig verletzt werden. Vor dem Aufruf und nach der Rückkehr müssen die Invarianten immer gelten. Klasseninvarianten können komplex sein. Mehrere Objektvariablen müssen berücksichtigt werden. Test kann aufwändig sein. Muss möglicherweise an vielen Stellen erfolgen. Programmiermethodik - Ausnahmebehandlung 50
51 Private Invarianten-Methode (2) Private Invarianten-Methoden Test der Klasseninvarianten wird in eine boolean-methode gegeben. Enthält keine Assertions. Wird in anderen Methoden bei Assertions verwendet. Beispiel public class Rational { private int denom; private boolean invariantholds() { return denom!= 0; } public void reduce() { assert this.invariantholds(); } public void invert() { assert this.invariantholds(); } } Programmiermethodik - Ausnahmebehandlung 51
52 Kompatibilität Assertions gibt es in Java erst seit der Version 1.4.! Voraussetzungen für Assertions: JDK-1.4.-Compiler 1.4.-kompatibles Laufzeitsystem Programmiermethodik - Ausnahmebehandlung 52
Exceptions. Programmiermethodik. Eva Zangerle Universität Innsbruck
Exceptions Programmiermethodik Eva Zangerle Universität Innsbruck Motivation Fehler können unerwartet auftreten. Programme müssen auf Fehlersituationen vorbereitet werden und kontrolliert darauf reagieren.
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)
Grundlagen der Programmierung Prof. H. Mössenböck 16. Ausnahmen (Exception Handling) Motivation Fehler können nicht immer dort behandelt werden, wo sie auftreten void p() { q(); Lösung void q() { r();
MehrProgrammieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik
Programmieren I Fehlerbehandlung Exceptions Heusch 2. Bd, 3 Ratz 10 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Exceptions und ihre Behandlung Exception - Ausnahmebedingung
MehrVorlesung 10. Sitzung Grundlegende Programmiertechniken
Vorlesung 10. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 Objektorientierte
MehrGrundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.
Universität Osnabrück 1 Grundlagen der Fehlerbehandlung 3 - Objektorientierte Programmierung in Java Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Wenn
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
MehrAusnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren
Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,
MehrException. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens
6. Exceptions Exception Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Eine Exception ist ein Objekt, das Informationen über einen Programmfehler enthält. Eine Exception
Mehr9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java)
9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 13. Dezember 2005 Einordnung im Kontext der
Mehr1 Fehler-Objekte: Werfen, Fangen, Behandeln
1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable
MehrGliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen
Idee Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
Mehr1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally
Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)
MehrExceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1
Exceptions CoMa-Übung VII TU Berlin 7.11.013 CoMa-Übung VII (TU Berlin) Exceptions 7.11.013 1 / 1 Themen der Übung 1 Compilezeit- und Laufzeitfehler Exceptions 3 Try-Catch-Finally CoMa-Übung VII (TU Berlin)
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable fasst alle Arten von Fehlern zusammen.
Mehr3. Exceptions. Hintergrund: Programmieren auf der Basis von Verträgen. Kundenklasse. Lieferantenklasse
3. Exceptions Prinzipien von Exceptions 3. Exceptions Hintergrund: Programmieren auf der Basis von Verträgen Kundenklasse Lieferantenklasse Methodenaufruf Verpflichtung zur Einhaltung der Vorbedingung
MehrExceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero
Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen
MehrAusnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrVorlesung Programmieren
Vorlesung Programmieren 10 Ausnahmebehandlung (Exceptions) Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN
MehrJava Fehlerbehandlung
Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm
Mehr1.7 Fehler- und Ausnahmebehandlung
1.7 Fehler- und Ausnahmebehandlung Ein Beispiel: class PhoneBook { int capacity; String names[]; int numbers[]; int count; PhoneBook(int cap) { capacity = cap; names = new String[cap+1]; numbers = new
MehrEnumerations und innere Klassen
Enumerations und innere Klassen Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung
MehrJava : Fehlerbehandlung.
Java : Fehlerbehandlung Prinzip Callerklassen / Workerklassen Arbeitet... Callerklasse Arbeitet... Workerklasse Arbeitet... Arbeitet weiter... Fer7g! Prinzip Callerklassen / Workerklassen Main- Methode
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Ausnahmen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Ausnahmen (Exceptions) Motivation Fehlerbehandlung Klassenhierarchie Checked vs. Unchecked
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert
MehrJava Einführung Exception Handling. Kapitel 17
Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf
MehrSoll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. NumberFormatException
Soll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. Beispiel: NumberFormatException public class Adding extends MiniJava { public static void main(string[] args) { int
MehrGrundlagen der Programmierung. Kapitel 9: Ausnahmen. Überblick. Fehlerbehandlung in Software-Systemen. Ziel der Vorlesung
Überblick Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Ausnahme: ein Ereignis, das den normalen Programmfluss ändert. Ausnahmen in Java Programmierung von Ausnahmen
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Verschiedene Exceptions Mehrere catch-anweisungen Der finally-block WS
MehrAusnahmenbehandlung in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien
Ausnahmenbehandlung in Java Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Was sind Exceptions? Eine Ausnahme (Exception) ist ein Objekt einer Unterklasse von Throwable Eine Ausnahme
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()
Mehr5.13 Umgang mit Fehlern
5.13 Umgang mit Fehlern Klassifikation von Fehlern: Syntaxfehler: Lexikalische Fehler: Falsche oder unbekannte Worte String s neu String("Max"); Falsche Anordnung von Anweisungen: Falscher Typ: import
MehrBeispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf
16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen
MehrTeil II. Objektorientierte Programmierung und objektorientierter Entwurf
Teil II Objektorientierte Programmierung und objektorientierter Entwurf 39 Kapitel 8 Robuste Programme durch Ausnahmebehandlung Ziele: Lernen, robuste Programme zu schreiben Ausnahmen als Objekte verstehen
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrExceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
MehrObjektorientierte Programmierung. Kapitel 13: Exceptions
Stefan Brass: OOP (Java), 13. Exceptions 1/39 Objektorientierte Programmierung Kapitel 13: Exceptions Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/
MehrFehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden
Exceptions Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden int a; double b=10; a = 10 * b; System.out.println(a); Fehler die während der Programmausführung
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 12. Fehler und Ausnahmen
1 Kapitel 12 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung kennenlernen Das Java-Konzept der Ausnahmen als Objekte verstehen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte
MehrProgrammieren in Java
Programmieren in Java Einführung in die objektorientierte Programmierung Teil 4 und Exception Handling 2 Übersicht der heutigen Inhalte Interfaces Modifikatoren bei der Klassendefinition Exception Handling
MehrKapitel 9: Klassen und höhere Datentypen. Selektoren
Selektoren Üblicherweise erlaubt man keinen (direkten) öffentlichen (public) Zugang zu Objektvariablen mehr Kontrolle über Zugang interne Details besser verborgen Statt dessen: Zugriff auf privates Feld
Mehr12. Advanced Features, Abschluss
12. Advanced Features, Abschluss Abstrakte Klassen Ausnahmen Rückblick und Ausblick László Böszörményi ESOP Abschluss - 1 12. 1. Abstrakte Klassen Am oberen Ende einer Hierarchie finden wir oft eine reine
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrVorlesung Programmieren
Vorlesung Programmieren 12 Ausnahmebehandlung (Exceptions) Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrJava - Fehler im Code. Leibniz Universität IT Services Anja Aue
Java - Fehler im Code Leibniz Universität IT Services Anja Aue Softwarefehler Programmierfehler entstehen beim Schreiben des Programmcodes. Logische Fehler können durch Denkfehler bei der Umsetzung der
MehrJava I Vorlesung Exceptions
Java I Vorlesung 8 Exceptions 14.6.2004 Exceptions (Ausnahmen) Klassen für Ein- und Ausgabe Ausnahmen Ausnahmen (Exceptions) sind ein Mechanismus zum kontrollierten Melden und Reagieren auf Fehler. Man
Mehr7. Java Fehler und Ausnahmen
Fehler und Ausnahmen in Java 7. Java Fehler und Ausnahmen Fehler und Ausnahmen unterbrechen die normale Programmausführung abrupt und stellen eine nicht geplantes Ereignis dar. Ausnahmen sind böse, oder
Mehr9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik
9. Fehlerbehandlung Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:
MehrAufgabe 1: Objekte, Klassen, Vererbung (15 Punkte)
Klausur zum Kurs 1618 im Sommersemester 2002 am 10.8.2002 1 Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte) Was ist der Unterschied zwischen a) einem Objekt und einer Klasse? b) der Instanz einer Klasse
Mehr4.5 Exceptions. TU Darmstadt Allgemeine Informatik II, SS 05
4.5 Exceptions In der Abarbeitung eines Methodenaufrufs kann die Methode immer potentiell auf Probleme stoßen, mit denen sie selbst nicht umzugehen weiß. Exceptions geben einer Methode die Möglichkeit,
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrObjektorientierte Programmierung. Kapitel 18: Exceptions II
18. Exceptions II 1/51 Objektorientierte Programmierung Kapitel 18: Exceptions II Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
Mehr15 Fehler-Objekte: Werfen, Fangen, Behandeln
15 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse
MehrGrundlagen der Informatik für Ingenieure I
12. Exceptions.1 12 Exceptions 12 Exceptions Java unterscheidet drei Arten von Ereignissen: Events: Interaktionsereignisse mit dem GUI (siehe Kapitel 10) Errors: Interne schwerwiegende Fehler in der JVM
MehrII.1.1. Erste Schritte - 1 -
! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1
MehrDie Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrEnumerationen. Einführung. Probleme. Enumerationen. Wir benötigen in Programmen manchmal vordefinierte Menge von Werten.
Enumerationen Einführung Wir benötigen in Programmen manchmal vordefinierte Menge von Werten Sie können eigene Aufzählungstypen deklarieren Sie verwenden Aufzählungstypen situationsgerecht Beispiele: Wochentage
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrAusnahmebehandlung OOPM, Ralf Lämmel
Schon mal einen Blue Screen gesehen? Ausnahmebehandlung OOPM, Ralf Lämmel 927 Beispiele für Ausnahmesituationen Programmfehler precondition failed Unzulässige Nutzereingabe bad url Nichtverfügbarkeit von
Mehr1.) Behandlung von Laufzeitfehlern in Visual Basic
1.) Behandlung von Laufzeitfehlern in Visual Basic Laufzeitfehler sind Fehler, die während der Programmausführung (Laufzeit) auftritt. Laufzeitfehler werden in der Regel nicht direkt durch den Programmcode,
MehrInnere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
MehrProgrammieren in Java
Programmieren in Java Fehlerbehandlung und Ein- und Ausgabe Titel der Präsentation 2 Fehler = Exceptions? Die Exception- bzw. Ausnahmebehandlung in Java ist eine spezielle Form der Fehlerbehandlung Typischerweise
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrObjektorientierte Programmierung. Kapitel 18: Exceptions II
Stefan Brass: OOP (Java), 18. Exceptions II 1/50 Objektorientierte Programmierung Kapitel 18: Exceptions II Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrProgrammiermethodik 1. Klausur
Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrSchachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A
2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 9: Unified Modeling Language Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München Stack
MehrAlgorithmen und Programmierung III WS 05/06
Algorithmen und Programmierung III WS 05/06 Übungsblatt 4 - Abgabe vor der Vorlesung 15.11.05 Aufgabe 0 (Wiederholung) [Optional] Ausnahmen (throw, catch, finally, throws, Behandlung, Laufzeitausnahmen,
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrStrukturierte Ausnahmebehandlung Exceptions
Strukturierte Ausnahmebehandlung Exceptions Bedeutung der Ausnahmebehandlung Exkurs: assert Strukturierung: try, catch, finally, throw Korrektes Werfen + Fangen finally-verhalten (Initialisierung + Rückgabewerte)
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrWiederholung zur Vorlesung Programmieren
Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrPraktische Softwaretechnologie Vorlesung 4
Praktische Softwaretechnologie Vorlesung 4 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 31. Oktober 2006 p.1/28 Die Klasse
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrGrundlagen der Informatik Ausnahmebehandlung & Threads
Grundlagen der Informatik Ausnahmebehandlung & Threads Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Inhalt Ausnahmebehandlung
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
Mehr1.5. Strukturierte Anweisungen
1.5. Strukturierte Anweisungen Switch-Anweisung (C++): Initialisierungen dürfen nicht 'übersprungen' werden: switch (i) { int v1 = 2; // ERROR: jump past initialized variable case 1: int v2 = 3; //...
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
Mehr