Exceptions. Programmiermethodik. Eva Zangerle Universität Innsbruck
|
|
- Angela Schulze
- vor 7 Jahren
- Abrufe
Transkript
1 Exceptions Programmiermethodik Eva Zangerle Universität Innsbruck
2 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 2
3 Ausnahmen (Exceptions)
4 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 4
5 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 5
6 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 Programmiermethodik - Ausnahmebehandlung 6
7 Exception-Handling 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. Damit kann an der sinnvollsten Stelle auf das Problem reagiert werden. 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 Abbildung übernommen aus Java als erste Programmiersprache, Goll & Heinisch Programmiermethodik - Ausnahmebehandlung 9
10 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 10
11 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 11
12 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! 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 Ablauf (2) 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 13
14 Exception Handling Exception wird geworfen Try/Catch Weiterreichen lokale Behandlung Programmiermethodik - Ausnahmebehandlung 14
15 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 15
16 Beispiel lokale Behandlung 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 16
17 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 bzw. throw-statements werden überprüft; müssen vorhanden sein). Programmiermethodik - Ausnahmebehandlung 17
18 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 18
19 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 19
20 Hierarchie (Übersicht, teilweise) Programmiermethodik - Ausnahmebehandlung 20
21 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 21
22 Exception-Hierarchie Exception RuntimeException ArithmeticException NullPointerException IndexOutOfBoundsException. IOException. InterruptedException MyException. Vordefinierte Ausnahmen Selbst definierte Ausnahmen Systemausnahmen (Unchecked Exceptions) Benutzerausnahmen (Checked Exceptions) Programmiermethodik - Ausnahmebehandlung 22
23 Eigene Exception erstellen Allgemein sollte man bereits bestehende Exceptions wiederverwenden bzw. spezialisieren. Falls keine der Exceptions zutrifft, kann man auch eigene Exceptions erzeugen, die von der Klasse Exception erben. 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); } } Programmiermethodik - Ausnahmebehandlung 23
24 Eigene Exception auslösen 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 24
25 Weiterreichen von Exceptions Methoden müssen ihre Ausnahmen nicht lokal behandeln, sondern können sie auch weiterreichen. Exception wird an aufrufende Methode weitergereicht. 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. Programmiermethodik - Ausnahmebehandlung 25
26 Weiterreichen von Exceptions (2) Ausnahme soll möglichst spezifisch sein. Immer dann verwenden, wenn die Exception von einem Aufrufer sinnvoller behandelt werden kann (z.b. Parameter- Neueingabe). Wird vom Compiler überprüft (checked exception). Fehlende oder falsche Angaben werden gemeldet. Ausnahmen können durchgereicht werden. Methode generiert die Ausnahme nicht selbst, sondern ruft eine Methode auf, die eine Ausnahme generiert. Programmiermethodik - Ausnahmebehandlung 26
27 Weiterreichen von Exceptions (3) 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 27
28 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: Ab 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 28
29 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 FinallyApplication.java Programmiermethodik - Ausnahmebehandlung 29
30 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 30
31 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 31
32 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 32
33 Ü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 33
34 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 34
35 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 FinallyApplication.java Programmiermethodik - Ausnahmebehandlung 35
36 Multi-Catch (1) Manchmal möchte man mehrere Ausnahmetypen gleichartig behandeln und dafür nur eine catch-klausel verwenden. Ab 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 36
37 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 37
38 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. Mit Java 7 eingeführt. Programmiermethodik - Ausnahmebehandlung 38
39 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 39
40 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 40
41 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 41
42 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! Programmiermethodik - Ausnahmebehandlung 42
43 Verwendung von Ausnahmen (3) 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 43
44 Verwendung von Ausnahmen (4) Ausnahmen sollten auch dokumentiert werden Auszug aus "How to Write Doc Comments for the Javadoc Tool": Programmiermethodik - Ausnahmebehandlung 44
45 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 45
46 Ausnahmen Don't (1) Niemals eine Ausnahme verschwinden lassen try { // TODO Auto-generated catch block e.printstacktrace(); } catch (MyException e) {} Fehler verschwinden nicht von selbst! Programm wird möglicherweise nicht richtig funktionieren (inkonsistente Daten etc.). Programmiermethodik - Ausnahmebehandlung 46
47 Ausnahmen Don't (2) 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 47
48 Assertions
49 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 49
50 Einsatz von Assertions Sind für Bedingungen geeignet, deren Einhaltung vom Programm selbst garantiert werden kann. z.b. am Ende einer Methode Rechenergebnisse absichern. Testen von Programmen sind bestimmte Bedingungen erfüllt? 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 50
51 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 51
52 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 nur während der Entwicklungszeit aktiviert! Programmiermethodik - Ausnahmebehandlung 52
53 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 53
54 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 54
55 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 55
56 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 56
57 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 57
58 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 58
Exceptions. Programmiermethodik. Eva Zangerle Universität Innsbruck
Exceptions Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
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
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
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
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,
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
MehrListe Programmieren Java Überblick
Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads
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
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.
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.
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Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 854
Überblick 9. Weitere Konzepte der oo Programmierung in Java 9.1 Vererbung, abstrakte Klassen, Polymorphismus 9.2 Interfaces 9.3 9.4 Polymorphie versus Typsicherheit Peer Kröger (LMU München) Einführung
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
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
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln
15 Fehlerobjekte: Werfen, Fangen, Behandeln Tritt während der Programmausführung ein Fehler auf, wird die normale Programmausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse Throwable
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
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
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
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
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
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
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
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
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
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
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
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
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()
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,
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
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
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
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/
MehrExceptions - Klausuraufgaben
Exceptions - Klausuraufgaben (1.) Exception ist.! (a.) eine Klasse (b.) eine Schnittstelle (c.) abstrakte Klasse (d.) Keines davon (2.) Exception is in dem Java Package! (a.) java.lang (b.) java.util (c.)
MehrVerträge und objektorientierter Entwurf
Verträge und objektorientierter Entwurf Überblick Was dieses Video behandelt: Design by Contract (etwa: Entwurf gemäß Vertrag) als Richtlinie beim objektorientierten Entwurf Verträge Vererbung Invarianten
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
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
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
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
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
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
Mehr16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2
16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Motivation Fehlerbehandlung
Mehr15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2
15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Motivation Fehlerbehandlung Übung
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:
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
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
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 - 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
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,
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
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
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/
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
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:
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
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
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Subtyping revisited Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 40 Subtyping und Vererbung
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
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
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,
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,
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
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; //...
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
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/
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
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,
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
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
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
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
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
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
MehrAgenda. Informatik I WS05/06 Folien von Tobias Dezulian
15.12.2005 Agenda Geltungsbereich (Scope) von Variablen Blöcke Der Call-Stack Einschub: Debugging unter Eclipse Der Heap Lebensdauer von Objekten Müllabfuhr: Garbage Collection Exceptions Geltungsbereich
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
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
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 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,
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
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
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
MehrInformationsverarbeitung
1/15 Informationsverarbeitung Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2011/2012 Vorlesung 14 (Download Quelldateien)
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,
MehrStrukturierte Ausnahmebehandlung Exceptions
Strukturierte Ausnahmebehandlung Exceptions Bedeutung der Ausnahmebehandlung Exkurs: assert Strukturierung: try, catch, finally, throw Korrektes Werfen + Fangen finally-verhalten (Initialisierung + Rückgabewerte)
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
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,
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
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
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,
MehrVersuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
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
MehrListing 1: Cowboy. Listing 2: Woody
Musterlösung Test 3 Aufgabe 1: Cowboy Listing 1: Cowboy class Cowboy { public String rope ( Cowboy that ) { if ( this == that ) { return exclaim (); 5 else { return " Caught "; public String exclaim ()
Mehr