Komponenten-basierte Entwicklung Teil 4: Exceptions
|
|
- Helga Schäfer
- vor 5 Jahren
- Abrufe
Transkript
1 Komponenten-basierte Entwicklung Teil 4: Exceptions
2 Definitionen I Exception = Ausnahme = Situation, in der während einer Operation eine der Bedingungen des Typs bzw. der Klasse verletzt wird Jede Klasse definiert Bedingungen, den gültigen Zustand der Werte von den Attributen definieren. Eine Exception liegt also vor, wenn eine Operation ausgeführt wird, die zu einem Zustand führt, der die Bedingung des Typs bzw. der Klasse verletzt. 2
3 Definitionen II - Beispiele Integer-Variable mit größtem Wert wird um 1 erhöht (Überlauf) Array wird mit einem zu kleinen oder zu großen Wert indiziert Division durch 0 Funktionen mit falschen Werten Kein Speicher im RAM oder auf der Platte vorhanden 3
4 Behandlung I Aktion1 IF.. Behandlung1 ELSE Aktion2 IF.. Behandlung2 Aktion1 Aktion2 Aktion3 IF.. Behandlung1 IF.. Behandlung2 ELSE Aktion3 Vermischte Behandlung Getrennte Behandlung 4
5 Behandlung II Die getrennte Behandlung führt zu leichter verständlichen Strukturen, da der wesentliche Algorithmus klar in einem Stück definiert ist. Die Mischung von Aktivitäten und Abfragen, ob es geklappt hat, sowie den damit verbundenen if-then-else-konstruktionen ist schwer zu durchschauen, besonders dann, wenn die Routinen kurz sein sollen, z.b. bis zu 20 Zeilen. Daher wird die Benutzung der Exceptions empfohlen. 5
6 Beispiel für Division durch 0 I public class Main { static int division(int a, int b) { return a/b; public static void main(string[] args) { int numb1= 10, numb2= 0, div; div= division(numb1,numb2); System.out.println(numb1+" durch "+numb2+" ist "+div); Exception in thread "main" java.lang.arithmeticexception: / by zero at except1.main.division(main.java:6) at except1.main.main(main.java:10) 6
7 Eine Ausnahme auslösen I Eine Ausnahme liegt vor, wenn eine mit der Ausnahme korrespondierende Bedingung verletzt ist und dies festgestellt wird. Englisch: throwing an exception Eine Ausnahme wird dann geworfen. Aber auch: Eine Ausnahme wird behandelt, wenn ein zu der Ausnahme gehörender Block ausgeführt wird. Englisch: catching an exception Eine Ausnahme wird dann gefangen, wenn ein die Ausnahme behandelnder Block ausgeführt wird. 7
8 Beispiel für Division durch 0 II public static void main(string[] args) { int numb1= 10, numb2= 2, div; try { numb2= 0; div= division(numb1,numb2); System.out.println(numb1+" durch "+numb2+" ist "+div); catch (Exception ex) { System.out.println("Gefangen!"); System.out.println(ex); System.out.println("Weiterlauf..."); Überwachen Fangen Im try-block wird das Werfen von Exceptions überwacht, im catch-block werden die Ausnahmen gefangen. Bei der Division durch 0 wird die Exception von der ausführenden virtuellen Maschine geworfen. 8
9 Überwachen und Fangen I 9
10 Überwachen und Fangen II Es können unterschiedliche Arten von Ausnahmen gefangen und entsprechend unterschiedlich behandelt werden. Bei jeder Ausnahme wird ein Objekt einer bestimmten Klasse erzeugt, das im catch-teil deklariert und dort über eine catchlokale Variable benutzt werden kann: catch (Exception ex) { Ist eine Ausnahme behandelt, also am Ende des catch-blocks, wird die lokale catch-variable hier ex - vernichtet, was in der Regel zur Vernichtung des Exception-Objekts führt. Damit eine Exception abgefangen werden kann, muss eine Klasse definiert sein, die von der fest bestimmten Oberklasse Throwable abgeleitet ist. Diese Klasse symbolisiert die Ausnahme und enthält alle erforderlichen Angaben zur Behandlung. 10
11 Klassenhierarchie der Ausnahmen I (Auszug) 11
12 Klassenhierarchie der Ausnahmen II Klasse Error: Hierzu gehören alle Probleme des Java-Interpreters, nicht die Programmierfehler. Klasse Exception: Die Klasse Exception umfasst alle "normalen" Ausnahmen, also alle Programmierfehler. Klasse RunTimeException: Programmierfehler, die auch außerhalb eines try-blocks auftreten dürfen Klasse IOException: Ausnahmen, die durch Input/Output entstehen, aber nicht unbedingt Fehler sind, aber innerhalb eines try-blocks auftreten müssen Klassen SelbstDefiniert: Durch Programmierer/innen festgestellte und signalisierte Ausnahmen, die innerhalb eines try-blocks auftreten müssen 12
13 Fangen von Ausnahmen I catch (Exception1 ex) { catch (Exception2 ex) { catch (Exception3 ex) { Ablauf beim Fangen einer Exception: 1) Eine Ausnahme wird im try-block geworfen. 2)Die catch-deklarationen werden von vorne nach hinten durchsucht, ob die geworfene Ausnahme zur angegebenen Ausnahme passt. 3)Passt sie, wird der catch-block betreten. Tut sie es nicht, wird die nächste catch-deklaration untersucht. 4)Wird keine gefunden, wird die Ausnahme weiter an den Aufrufer der betreffenden Methode gereicht. 13
14 Fangen von Ausnahmen II Wird in der catch-deklaration eine der oberen Klassen in der Hierarchie angegeben, wie z.b. Exception, dann werden Ausnahmen dieser Klasse und samt aller Unterklassen durch den catch-abschnitt abgefangen. Das bedeutet, dass die speziellen Ausnahmen immer zuerst angegeben werden, während die allgemeinen, zusammenfassenden Ausnahmen am Ende stehen sollten. catch (Exception ex) { A catch (ArithmeticException ex) { B Schlecht! In diesem Beispiel würde der Block B nie ausgeführt werden, weil Exception allgemeiner ist und damit ArithmeticException umfasst. 14
15 Weiterleiten von Ausnahmen I static int[] a = new int[2]; static void func() { try { a[2]= 6; catch (ArrayIndexOutOfBoundsException ex) { System.out.println("Array Exception gefangen!"); System.out.println(ex.toString()); throw ex; static void catchandthrow() { try { func(); catch (Exception ex) { System.out.println("Exception aus func() gefangen!"); System.out.println(ex); System.out.println("Weiterlauf..."); 15
16 Weiterleiten von Ausnahmen II Eine Ausnahme wird auf zwei Arten weiter geleitet: Implizit aufgrund fehlender Behandlung (siehe erstes Beispiel der Division durch 0: dort wird die Ausnahme zum Aufrufer der Routine division() weiter geleitet) Explizit in einer Behandlung durch throw ExceptionObjekt Derjenige, der eine Ausnahme feststellt, erzeugt ein Exception- Objekt, das mit dem throw-konstrukt geworfen wird. Beim Weiterleiten wird das erzeugte Exception-Objekt erneut beim Werfen benutzt. Beim Weiterleiten kann auch die Art der Ausnahme geändert werden, indem ein neu generiertes Exception-Objekt geworfen wird (rethrow). 16
17 Das Exception-Objekt I String getmessage() Throwable getcause() String tostring() Gibt die Fehlermeldung wieder, die beim Erzeugen des Objekts übergeben wurde Liefert ein Exception-Objekt, das die ursprüngliche Ausnahme symbolisiert Konvert das Exception-Objekt in einen String zur Ausgabe void printstacktrace() Es wird der Aufruf-Stack ausgegeben. StackTraceElement[] getstacktrace() Der Aufruf-Stack wird in Form eines Feldes geliefert. 17
18 Das Exception-Objekt II (3) public class Exception6ExcObject { (4) static int[] a= new int[2]; (5) static void func() { (6) try { (7) a[2]= 6; (8) (9) catch (ArrayIndexOutOfBoundsException ex) { (10) ex.printstacktrace(); (11) (12) (13) public static void main(string[] args) { (14) func(); (15) (16) java.lang.arrayindexoutofboundsexception: 2 at exception6.exc.object.exception6excobject.func(exception6excobject.java:7) at exception6.exc.object.exception6excobject.main(exception6excobject.java:14) 18
19 finally I Der durch finally eingeleitete Block wird immer ausgeführt, also sowohl im Fehlerfall als auch im Normalfall. Dann wird hinter dem finally weiter gemacht, jedenfalls wenn nicht mit return gearbeitet wird. Wird der catch-block mit return abgeschlossen, so wird trotzdem noch der finally-block ausgeführt. Wird der catch-block mit mit System.exit() beendet, dann ist wirklich ohne finally-block Schluss. Das Terminieren (return oder exit()) innerhalb von catch oder finally-blöcken ist schlechter Programmierstil. Aufgabe des finally-blocks: Aufräumaktionen Schließen von Dateien Leeren von Puffern bei Input/Output 19
20 finally II 20
21 Beispiel für finally I RandomAccessFile file= null; try { file= new RandomAccessFile("blabla.txt","r"); file.seek(1000); int bit16= file.read(); file.close(); catch (FileNotFoundException ex) { System.out.println("File not found"); catch (IOException ex) { System.out.println("IOException"); finally { try { if(file!=null) { file.close(); catch (IOException ex) { Geschachtelte Ausnahme- Behandlung 21
22 Beispiel für finally II - Bemerkungen Wenn Ressourcen belegt werden, besteht der typische Ablauf, dass im finally-teil die Ressourcen wieder freigegeben werden. Die Struktur (Schema) des letzten Beispiels ist typisch für File- IO. Es können auch Exceptions während der Behandlung von Ausnahmen auftreten! Das Schließen einer Datei kann eine Exception werfen. Es kann auch sein, dass die Datei noch gar nicht geöffnet wurde, d.h. vor dem close() muss dies abgefragt werden. Eine Ausnahme gilt mit Verlassen des catch-blocks als vollständig behandelt, d.h. es geht dann normal weiter. Wird erneut eine Exception geworfen, so gilt diese. Geschachtelte Exceptions gibt es nicht. try/catch/finally-blöcke sind Blöcke mit lokalen Variablen, die am Ende der Blöcke vernichtet werden. 22
23 Checked und Unchecked Exceptions Es gibt in Java zwei Arten von Exceptions: Unchecked Exceptions Diese können, müssen aber nicht explizit behandelt werden. Alle Exceptions der Gruppen Error und RunTimeException gehören dazu. Bisher wurde nur diese Art behandelt. Checked Exceptions Diese müssen in einem try-block geworfen werden. Diese müssen entweder behandelt oder weiter geleitet werden. Wenn sie weiter geleitet werden, müssen sie im Routinen-Kopf mit dem Schlüsselwort throws angegeben werden. Diese Angaben gehören zur Signatur. Der Compiler prüft, ob eine Methode mit einer Exception in der Signatur aufgerufen wird und ob dies innerhalb eines try-blocks erfolgt. 23
24 Selbstdefinierte Exception-Klasse I public static void doit(int param) throws WrongParameter { if(param<0) { throw new WrongParameter("param is negative"); System.out.println("param= "+param); public static void main(string[] args) { try { doit(2); DoIt(-1); catch (WrongParameter ex) { System.out.println(ex.getMessage()); 24
25 Selbstdefinierte Exception-Klasse II public class WrongParameter extends Exception { public WrongParameter() { public WrongParameter(String msg) { super(msg); Ergebnis param= 2 param is negative Dies ist der typische Aufbau einer Exception-Klasse. Der String-Parameter im Konstruktor definiert den String, der mit getmessage() in der Behandlung geholt werden kann. Exception-Klassen erfüllen daher zwei Zwecke: Transport von Informationen vom Ort der Feststellung zur Behandlung: sie sind eigentlich Nachrichten. Klassifikation der Exception aufgrund der Einbindung in die Exception-Hierarchie. 25
26 Ergänzungen (ab Java 1.7) Es können in einem catch-block mehrere Exceptions mit Oder (einfacher senkrechter Strich) zusammengefasst werden: catch (except1 except2 except3 Variable) { Auch hier muss die Hierarchie beachtet werden, also nur Geschwister in der Hierarchie verknüpfen. Regeln: Immer so nah wie nur möglich eine Ausnahme behandeln. Immer so viele Informationen wie zur sinnvollen Behandlung wie möglich über set()-methoden dem Exception-Objekt übergeben. Möglichst nie mit { eine Ausnahme ignorieren. 26
27 Komponenten Jede Exception offenbart ein Implementierungsdetail tiefer liegender Schichten. Daher sollten Komponenten nie Exceptions aus der Implementierung werfen. Stattdessen werden spezielle für die Komponenten-Schnittstelle konzipierte (abstrakte) Exceptions geworfen. Interne Exceptions werden dann in diesen abstrakten umgewandelt (per rethrow). In der Praxis sind fast alle Frameworks dazu übergegangen immer unchecked Exceptions zu werfen. Grund: Der/Die Programmierer/in kann eh nichts mit den Internata zur Laufzeit(!) anfangen; weiter gereichte Exceptions sind dann immer festgestellte Programmierfehler in der Benutzung des Frameworks. 27
28 Nun wieder etwas entspannen... 28
1 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
MehrÜbungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm
Z.11Fehlerbehandlung Programm beenden (System.exit()) meist eine schlechte Idee Ausgabe einer Fehlermeldung hilft nicht den Fehler zu überwinden spezieller Rückgabewert kennzeichnet Fehler Konstruktoren
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.
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
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember
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.
MehrII.4.4 Exceptions - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.4 Exceptions - 1 - Ausnahmen (Exceptions)
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.
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,
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();
MehrAusnahmen (Exceptions)
Ausnahmen (Exceptions) Herkömmliche Fehlerbehandlung Jede Methode liefert einen Fehlercode int result; result = p(); if (result == ok) { result = q(); if (result == ok) { result = r(); if (result == ok)
MehrMögliche Implementierung von intern():
Mögliche Implementierung von intern(): public class String { private static int n = 1024; private static List[] hashset = new List[n]; public String intern() { int i = (Math.abs(hashCode()%n);
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
MehrSelectionsort Beispiel
Selectionsort Arbeitsweise Durchsuche das Array ab Pos. 1 nach dem kleinsten Element Vertausche das gefundene Element mit dem ersten Durchsuche das Array ab Pos. 2 nach dem kleinsten Element Vertausche
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
Mehr15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen
15 Fehlerobjekte: Werfen, Fangen, Behandeln Idee Tritt während der Programmausführung ein Fehler auf, wird die normale Programmausführung abgebrochen und ein Fehlerobjekt erzeugt (geworfen). Die Klasse
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
Mehr9. Ausnahmebehandlung
Schwerpunkte Ausnahmen und Laufzeitfehler 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Stack-Trace Java-Ausnahmeklassen-Hierarchie
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
MehrJava : Fehlerbehandlung.
Java : Fehlerbehandlung Prinzip Callerklassen / Workerklassen Arbeitet... Callerklasse Arbeitet... Workerklasse Arbeitet... Arbeitet weiter... Fer7g! Prinzip Callerklassen / Workerklassen Main- Methode
MehrKapitel 11: Ausnahmebehandlung
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -242 Kapitel 11: Ausnahmebehandlung Ausnahmen (Exceptions) Signalisierung von Fehlern und unerwünschten Situationen zur Laufzeit.
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 Programmierung für NF. Fehler und Ausnahmen
Einführung in die Programmierung für NF Fehler und Ausnahmen Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java- Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen
MehrKapitel 9. Ausnahmebehandlung in Java. Skript zur Vorlesung Einführung in die Programmierung
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 9 Ausnahmebehandlung in Java Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13
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
MehrAusnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung : http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten: Syntaktische Fehler
MehrKapitel 12: Ausnahmen und Ausnahmebehandlung
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 12: Ausnahmen und Ausnahmebehandlung Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische
Mehr9. Ausnahmebehandlung
9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Version: 11. Jan. 2016 Schwerpunkte Ausnahmen und Laufzeitfehler
MehrSortieralgorithmen. Nachfolgend wird die Menge der ganzen Zahlen und die darauf definierte Relation betrachtet.
Sortieralgorithmen [http://de.wikipedia.org/wiki/topologische_sortierung] Die zu sortierenden Objekte müssen bezüglich einer Vergleichsbeziehung teilweise angeordnet werden können, damit sie sortierbar
MehrAusnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten:
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Ausnahmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Übersicht Ausnahmen 2 Klassenhierarchie 3 Try-Catch-Blöcke 4 Definition
MehrAbschnitt 7: Weitere Konzepte der oo Programmierung in Java
Abschnitt 7: Weitere Konzepte der oo Programmierung in Java 7. Weitere Konzepte der oo Programmierung in Java 7.1 Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 596 / 627 Überblick
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
MehrUmgang mit Fehlern. Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen
Umgang mit Fehlern Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen Die Java-Fehlerbehandlung stellt gegenüber älteren Verfahren einen großen Fortschritt dar. Prof.
MehrAusnahmebehandlung PK11W-16,
Ausnahmebehandlung PK11W-16, 05. 12. 2011 1 Laufzeitfehler weitere Ausführung unmöglich Ausnahme geworfen Beispiele: ArrayIndexOutOfBoundsException NullPointerException ArithmeticException AssertionError
MehrAusnahmen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 27.6.
Ausnahmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.6.07 G. Bohlender (IANM UNI Karlsruhe) Ausnahmen 27.6.07 1 / 8 Übersicht 1 Einführung
MehrZuverlässigkeit von Programmen: Behandlung von Ausnahmesituationen
Zuverlässigkeit von Programmen: Behandlung von Ausnahmesituationen 6.1 Behandlung von Ausnahmesituationen 6.3 Die Zusicherungsanweisung 6.1 Behandlung von Ausnahmesituationen 6-1 ArithmeticException import
MehrAusnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Fehlerarten Bei der Programmierung
MehrRobuste Programme durch Ausnahmebehandlung
2 Robuste Programme durch Ausnahmebehandlung Martin Wirsing Ziele Lernen robuste Programme zu schreiben Ausnahmen als Objekte verstehen lernen Bedeutung von Ausnahmen erkennen in der Signatur und im Rumpf
MehrExceptions. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E. Bazzi
Exceptions INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Datei öffnen Ausnahmesituation Exception Behandlung der Situation: exception handling Mögliche Ursachen falscher
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
MehrAusnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Fehlerarten Bei der Programmierung
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
MehrAusnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now 1. Smartphone: installiere die App "socrative
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 13. Java Ausnahmebehandlung 1 Motivation
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
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
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
MehrEinführung in die Programmierung für NF
Einführung in die Programmierung für NF Fehler und Ausnahmen Valerie Holmeier Michael Kirsch Direct Feedback Eure Mitarbeit ist mir wich@g Quiz nach den jeweiligen AbschniDen Jeder kann mitmachen App socra&ve
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 13/14. Kapitel 11. Fehler und Ausnahmen
1 Kapitel 11 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 11. Fehler und Ausnahmen
1 Kapitel 11 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
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
MehrWo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 280
Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,
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
Einführung in die Programmierung Teil 9: Ausnahmebehandlung Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Robuste Programme durch Ausnahmebehandlung Eine Ausnahme (Exception)
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Ausnahmen
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Ausnahmen Motivation Anwendungsbeispiel 1: java Excep1 a: 15 b: 3 a / b = 5 Job done. Konsole Anwendungsbeispiel 2: Konsole java
MehrJohannes Unterstein - TINF16 - Java - Sommersemester 2017 JAVA. Weiterführende Spracheigenschaften
JAVA Weiterführende Spracheigenschaften 100 AGENDA Strings Exceptions Enums Generics Lambdas & Methods Bulk-Operations 101 DIE KLASSE STRING Zeichenketten werden in Java als String repräsentiert Wie der
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. Ausnahmebehandlung
9. Ausnahmebehandlung 9.1 Motivation: Defensives Programmieren 9.2 Anforderungen an Programmiersprachen 9.3 Ausnahmebehandlung in Java 9.4 Laufzeitfehler und Ausnahmen 9.5 Aufräumarbeiten 9.6 C# und Java,
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
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt!! 26.03.2014 FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert von Methoden! String Fehlercode als String! int Fehlercode
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
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
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
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
MehrPrinzip des Exception Handling
Prinzip des Exception Handling geschützter Block p(); catch (Exception e) { System.out.println(e.toString()); void p() throws Exception { throw new Exception(); Auslösen einer Exception Exception Handler
MehrObjektorientierte Programmierung. Kapitel 9: Exceptions I
9. Exceptions I 1/37 Objektorientierte Programmierung Kapitel 9: Exceptions I Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
Mehr(Ausnahmebehandlung)
16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2
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.)
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 19. 25. Februar 2003 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()
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
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
MehrAusnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik
Ausnahmen Zentralübung zur Vorlesung http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arten von Fehlern Auslösen von Ausnahmen Vermeiden von Ausnahmen Ausnahmeklassen
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
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,
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
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
MehrProgrammiertechnik Ausnahmen
Programmiertechnik Ausnahmen Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation public class Excep1 { public void doyourjob() { Scanner scanner = new Scanner(System.in); System.out.print("a:
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)
MehrLösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am
Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public
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)
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 Wintersemester 2014/2015 Ausnahme: ein Ereignis, das den normalen Programmfluss ändert. Ausnahmen in Java Programmierung
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
MehrExceptions. CoMa-Übung VI TU Berlin. CoMa-Übung VI (TU Berlin) Exceptions / 19
Exceptions CoMa-Übung VI TU Berlin 8.11.01 CoMa-Übung VI (TU Berlin) Exceptions 8.11.01 1 / 19 Themen der Übung 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Exceptions 4 Try-Catch-Finally Bewertung
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
MehrDie abstrakte Klasse Expression:
Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die
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,
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
Mehr