Exception-Handling.

Slides:



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

der Universität Oldenburg
Ein Beispiel in Java.
Wie kann ich die Bundespolitik und damit die Bundesgesetze beeinflussen? Wahl zum Bundestag
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Referenzen und Zeichenketten
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Erweiterte Zuweisungskompatibilität
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Imperative Programmierung Funktionen und Parameter
Java-AG Ausnahmebehandlung Gerhard Gröger.
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
Technische Informatik II Vorlesung 12bis: Mehr über Security Sommersemester 2001 Prof. Peter B. Ladkin PhD Universität Bielefeld.
Fli4l Der Ein-Disketten-Router von Sebastian Röhl von Sebastian Röhl.
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Bestimmung des ggT zweier Zahlen
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 7 Strukturierte Ausnahmebehandlung (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Die vorwissenschaftliche Arbeit Die erste Säule der neuen kompetenzorientierten Reifeprüfung Stand
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Grundlagen der Programmierung
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Winkel-Dreiecke Elke Schnelle
SBO Erleichterung?! Arbeitserleichterung bei der Erstellung des Spielberichts Zugriff auf elektronisch vorhandene konsistente Daten im DFBnet Zugriff auf.
(c) JÄGER Datentechnik KG Steuerung von Anlagen neu definieren JDINT-001 Intelligentes Zusammenspiel von Hard- und Software Günstiges Verhältnis.
Was ist eine Datenbank „MS Access“
Vorstellung Fach Technisches Gestalten
Routing Instabilitäten
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Thema Projektpräsentation Team Titel
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Vorstellung Fach Technisches Gestalten
Programmiervorkurs WS 2014/15 Methoden
Congrès BPW Int International Congress Center, Jeju, Südkorea Congrès BPW Int
Herzlich Willkommen am Tag der offenen Tür!
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Robuste Programme durch Ausnahmebehandlung
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 11. Vorlesung WS 2001/2002.
Java-Kurs Übung zAusnahmebehandlung: Exceptions zEin-/Ausgabe yDatenströme.
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen
Implementieren von Klassen
 Präsentation transkript:

Exception-Handling

Was sind Exceptions? Programmzustände auf Grund unerwarteter Ereignisse („dürfen eigentlich nicht passieren!“) Benutzerverhalten Fehleingaben Systemverhalten Selten vorkommende reguläre Abläufe sind nicht als Ausnahmen zu behandeln Szenarien Über Selektion behandelbar Beispiel Dateiende erreicht Eingabevalidierungen Prinzip: Trennung Nutzcode Fehlerbehandlungscode 31.03.2017

Früher – Behandlung über Returncodes Rückmeldung der fehlerbehafteten Methode an Aufrufer Boolsche Werte, -1, … Nachteile Aufrufer behandelt Ausnahmen mitten im Standardablauf „Eigentlicher“ Algorithmus wird überlagert Bei vielen Exceptions  schwer lesbarer Code Aufrufer kann Ausnahme (Rückgabewert) ignorieren „Vogel Strauss-Taktik“ Exceptions „transportieren“ Fehler samt Informationen direkt von der Stelle des Auftretens zur Behandlungsstelle zurück 31.03.2017

Verarbeitung von Ausnahmefällen In der .NET Class Library werden in vielen Fällen Exceptions ausgelöst. Beispiele: - Umwandeln von String “abc“ in Zahl (Convert.ToInt32) - Versuch eine Datei zu öffnen die nicht existiert - Division durch 0 Um ein Programmende verhindern zu können, müssen diese Ausnahmefälle behandelt werden. (Natürlich können auch eigene Exceptions ausgelöst werden… dazu später mehr) 31.03.2017

Was tun, wenn Exception auftritt? Ausnahmesituation bereinigen und Vorgang wiederholen CD/DVD einlegen Neue Benutzereingabe Exception mitloggen und weiter machen Weniger kritische Situationen (Warnings) Exception abfangen und durch eigene Exception (Wrapper) ersetzen Sicherheitsgünde (Infos unterdrücken) An Benutzer angepasste Informationen Exception mit Inner-Exception weiterleiten Benutzer über Ausnahme informieren und Programm beenden 31.03.2017

Exceptions in C# try…catch…finally 31.03.2017

Einfache Exceptionbehandlung Szenario: Konto darf um maximal 1000 € überzogen werden Zuweisung von -2000 € auf Saldo löst Exception aus 31.03.2017

Try – catch - finally 31.03.2017

Eigene Exceptions erzeugen Normalerweise ApplicationException als Basisklasse Properties sind als Zusatzinfo neben Message möglich 31.03.2017

Exception-Hierarchie (1) Alle C#-Ausnahmen leiten sich aus der Klasse Exception ab. Wenn eine Ausnahme auftritt, wird der geeignete catch-Block durch einen Abgleich zwischen Typ der Ausnahme und der angegebenen Exception im catch-Block ermittelt. Ein catch-Block mit exakter Übereinstimmung hat hierbei Vorrang vor einer allgemeineren Ausnahme. 31.03.2017

Exception-Hierarchie (1) class Test { static int Zero = 0; public static void Main() try int j = 22 / Zero; } // Spezifische Ausnahme auffangen catch (DivideByZeroException e) Console.WriteLine("DivideByZero {0}", e); // Verbleibende Ausnahmen auffangen catch (Exception e) Console.WriteLine("Exception {0}", e); Der catch-Block, mit dem die DivideByZeroException aufgefangen wird, stellt die genauere Übereinstimmung dar, daher wird dieser Codeabschnitt ausgeführt. 31.03.2017

Exception-Hierarchie (2) Wird eine Exception innerhalb einer Methode nicht abgefangen, wird die Exception an die aufrufende Methode weitergereicht. Wenn eine Exception auch in der obersten Ebene (Main Methode) nicht abgefangen wird, so wird das Programm beendet! 31.03.2017

Exception-Hierarchie (2) class Test { static int Zero = 0; static void AFunction() int j = 22 / Zero; // Die folgende Zeile wird nie ausgeführt. Console.WriteLine("In AFunction()"); } public static void Main() try AFunction(); catch (DivideByZeroException e) Console.WriteLine("DivideByZero {0}", e); Bei Ausführung der Division wird eine Exception erzeugt. Die Laufzeitumgebung sucht nach einem try-Block in AFunction(), findet jedoch keinen try-Block, daher springt sie aus AFunction() und sucht in Main() nach einem try-Block. Hier ist ein try-Block vorhanden, also wird nach einem entsprechenden catch-Block gesucht. Anschließend wird der catch-Block ausgeführt. 31.03.2017

Inner-Exceptions erzeugen Erzeugen über speziellen Konstruktor Property kann zusätzliche Info liefern Amount soll abgehoben werden Exception auffangen und mit eigenen Infos weitergeben 31.03.2017

Inner-Exceptions auswerten Verarbeiten der Liste von Exceptions 31.03.2017

Ergebnis 31.03.2017

Übersicht der Exception-Klassenhierarchie  MSDN 31.03.2017

Properties zum Informationsaustausch 31.03.2017

Zwei Zentrale Exceptionhandler 31.03.2017