Teil 2-4. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Ähnliche Dokumente
Teil 2-4. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Grundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.

Grundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

1 Fehler-Objekte: Werfen, Fangen, Behandeln

Vorlesung 10. Sitzung Grundlegende Programmiertechniken

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 854

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

15 Fehlerobjekte: Werfen, Fangen, Behandeln

Heute: Java. Collections Framework ENUM Vererbung, Schnittstellen, Polymorphie Ausnahmen Streams & Dateien OR-Mapping. Literatur

15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen

15 Fehlerobjekte: Werfen, Fangen, Behandeln

9. Fehler und Ausnahmen Grundlagen der Programmierung 1 (Java)

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Liste Programmieren Java Überblick

15 Fehlerobjekte: Werfen, Fangen, Behandeln

Java Fehlerbehandlung

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Java Einführung Exception Handling. Kapitel 17

Ausnahmenbehandlung in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Exceptions. CoMa-Übung VII TU Berlin. CoMa-Übung VII (TU Berlin) Exceptions / 1

EINFÜHRUNG IN DIE PROGRAMMIERUNG

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren

Programmieren in Java

Soll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. NumberFormatException

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Einführung in die Programmierung Blockkurs Java

1.7 Fehler- und Ausnahmebehandlung

15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2

7. Java Fehler und Ausnahmen

Einführung in Datenbanken

Programmieren 2 Selbststudium Semesterwoche 6

16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2

Exception. 6. Exceptions. Die Klasse java.lang.exception. Fehlermeldung. Klassenname. Ort des Auftretens

Ausnahmebehandlung in Java

Exceptions - Klausuraufgaben

Oracle & Java HOW TO

Java : Fehlerbehandlung.

Grundlagen der Programmierung. Kapitel 9: Ausnahmen. Überblick. Fehlerbehandlung in Software-Systemen. Ziel der Vorlesung

System.out.println("TEXT");

Exceptions. Prof. Dr. Margarita Esponda SS M. Esponda-Argüero

Programmieren in Java

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Java - Programmierung - Prozedurale Programmierung 1

java.io Ziel Ressourcen Page 1 Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Java Tutorial Java API Dokumentation

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Java I Vorlesung Exceptions

Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte)

3. Exceptions. Hintergrund: Programmieren auf der Basis von Verträgen. Kundenklasse. Lieferantenklasse

Java - Fehler im Code. Leibniz Universität IT Services Anja Aue

12. Advanced Features, Abschluss

Javakurs zu Informatik I. Henning Heitkötter

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

Vorlesung Programmieren

Kapitel 15: Ausnahmen und

9. Fehlerbehandlung Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Programmieren in Java

Kapitel 9: Klassen und höhere Datentypen. Selektoren

Große Übung Praktische Informatik 1

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Objektorientierte Programmierung. Kapitel 13: Exceptions

Einstieg in die Informatik mit Java

Info B VL 6: Exceptions

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Software Entwicklung 1

II.4.5 Generische Datentypen - 1 -

Objektserialisierung

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 12. Fehler und Ausnahmen

boolean ispalindrome = word.equalsignorecase(reverse.tostring());

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs für Anfänger

Daten Bank. 2. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Interface. So werden Interfaces gemacht

5.13 Umgang mit Fehlern

Grundlagen der Informatik für Ingenieure I

Programmieren in Java

1.) Behandlung von Laufzeitfehlern in Visual Basic

Dr. Monika Meiler. Inhalt

JAVA für Einsteiger. Streams und Dateien. eden market Autor: Norman Lahme

Info B VL 14: Java Collections/Reflections

Java Einführung IO (Eingabe/Ausgabe)

Verteilte Systeme - Java Networking (Sockets) 2 -

Java-Schulung Grundlagen

Informatik II Aufgabenblatt 6

Fragenkatalog ESOP WS 16/17

Aufgabe: Hinweise zu der Farbwahl der Texte/Wörter: Orange ist angegeben, wo etwas ergänzt werden soll.

JDBC. Java DataBase Connectivity

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Java für Dummies Schummelseite

Remote Method Invocation

Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1

Programmiermethodik 3. Klausur Lösung

Programmiermethodik 1. Klausur

Enumerationen. Einführung. Probleme. Enumerationen. Wir benötigen in Programmen manchmal vordefinierte Menge von Werten.

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Transkript:

Teil 2-4. Vorlesung Modul: Programmierung B-PRG Professur für Datenbanken und Informationssysteme Dr. Karsten Tolle tolle@dbis.cs.uni-frankfurt.de 1

Klausur Samstag den 23. Juli http://www.dbis.informatik.uni-frankfurt.de/anmeldung/prg2/klausur/ Bis spätestens zum 13.07. anmelden! diese Anmeldung ersetzt nicht die Anmeldung beim Prüfungsamt! 2

Wiederholung: 3

public ArrayList <String> methode(arraylist <String> al) { al.add("hallo Welt!"); return al; } Aufruf mit methode(null) führt zu einer: java.lang.nullpointerexception 4

Exceptions (API) Throwable Exception Error IOException RuntimeException 5

Exceptions - Grundlagen Es gibt außergewöhnliche Bedingungen, die es nicht gestatten im Code normal fortzufahren, z.b. wenn man auf eine Datei zugreifen möchte, die nicht existiert. Ausnahmen (Exceptions) unter Java bieten einen Mechanismus zur strukturierten, flexiblen Behandlung von Fehlern, die während der Laufzeit eines Programmes auftreten können. 6

Exceptions - Fehlerarten mögliche Fehlerarten zur Laufzeit: Eingabefehler (durch Benutzer) Gerätefehler physikalische Grenzen Codefehler (z.b. ArrayIndex) 7

Exceptions - Ablauf Eine Exception wurde erzeugt (vom System oder vom Entwickler). Entweder Behandlung durch den Programmteil, in dem sie erzeugt wurde oder weitergeben. Beim Weitergeben hat nun der Empfänger die Möglichkeit sie zu behandeln oder ebenfalls weiterzugeben. Wird die Exception von keinem Programmteil behandelt, führt dies zum Abbruch des Programms (mit entsprechender Fehlermeldung)! 8

Exceptions - throwing In manchen Fällen sind die Ausnahmen bereits vorgesehen. Die entsprechenden Methoden enthalten dann eine throws-klausel. throwing = Auslösen der Ausnahme (werfen, schmeißen). Beispiel: void read() throws IOException { } throw new IOException( Datei nicht gefunden! ); 9

Exceptions - catching Will man solche Methoden (die Exceptions werfen) verwenden, muss die eventuelle Ausnahme abgefangen und die Behandlung implementiert werden. Alternativ kann die Exception einfach weiter gereicht werden mit throws. catching = Behandeln der Ausnahme (Abfangen und Reaktion). Beispiel:... try { read(); } catch (IOException e) { // im Falle einer Ausnahme }... 10

Exceptions - catching In Java übernimmt der try-catch-block die Fehlerbehandlung. Er umgibt den Bereich, in dem der Fehler auftreten könnte. Tritt im try-block ein Fehler auf, wird dieser sofort verlassen (alle weiteren Anweisung werden nicht ausgeführt!) und es wird in den ersten catch-block gesprungen. Falls dieser die Exception nicht abfängt, wird weiter in den nächsten catch-block gesprungen, usw... 11

Exceptions - catching Beispiel: Mehrere catch-blöcke (Reihenfolge beachten) try { Anweisung1; } catch (Ausnahmetyp1 ex1) { Anweisung2; } catch (Ausnahmetyp2 ex2) { Anweisung3; Ausnahmetyp1 darf nicht Oberklasse von Ausnahemtyp2 sein! } 12

Exceptions - catching der finally-block ist optional, folgt nach dem letzten catch-block und wird immer ausgeführt!!! Insbesondere: wenn das normale Ende des try-blocks erreicht wurde (ohne Fehler), wenn eine Exception aufgetreten ist, egal ob sie durch einen catch-block behandelt wurde oder nicht, wenn der try-block durch break, continue oder return verlassen wurde. 13

Exceptions - catching Beispiel: try-catch mit finally-block try { } catch (Ausnahmetyp ex) { } finally { } 14

Exceptions - catching Der finally-block kann verwendet werden, um Aufräumarbeiten durchzuführen! Zum Beispiel um Dateien zu schließen oder andere Ressourcen freizugeben. 15

Exception Weitergabe Statt eine Exception zu behandeln, kann man sie an die aufrufende Methode weitergeben: einfach die try-catch-klausel weggelassen und an den Methodenkopf die Exceptions mit throws anhängen (durch Komma getrennt), die weitergegeben werden können. 16

Exception Weitergabe Beispiel:... public void dbausgabe() throws SQLException { }... ResultSet ergebnis = stat.executequery("select * FROM kunden WHERE nachname='schmidt'");... 17

Exception Behandlung und dann kann die aufrufende Methode die Exception z.b. behandeln. Fehlerbehandlung kann zentralisiert und so redundanter Code vermieden werden!!! Beispiel von vorheriger Folie:... try { dbausgabe(); } catch (SQLException ex) { // Ausführung von SELECT System.out.println("DB-Fehler beim Lesen!"); }... 18

Exception Klassen (API) einige wichtige Ausnahmetypen RuntimeException: ArithmeticException (Division durch 0) ArrayIndexOutOfBoundsException NullPointerException IOException: FileNotFoundException Error: VirtualMachineError Exception: ClassNotFoundException 19

Exception Klassen (API) Für die Standard-Java-Klassen kann man in der API nachlesen, ob für eine bestimmte Methode eine Exception behandelt werden muss. Der Compiler gibt eine Fehlermeldung aus, falls eine Exception nicht behandelt wird (catch-or-throw). 20

Exception Klassen (API) Ausnahmen von der catch-or-throw-regel sind alle Klassen, die von RuntimeException erben bzw. RuntimeException selbst. Beispiel: Gleitkommadivision durch Null Überlauf Mathematische Fehler Diese Exceptions können, müssen aber nicht behandelt werden! Fehler-Handling würde sonst zu umfangreich werden. 21

Exception Beispiel Beispiel:Diese Methode testet, ob ein String in einen Integer umwandelbar ist. public boolean isinteger(string s){ if ( (s == null) (s.equals("")) ) { return false; } else { try { Integer test = new Integer(s); } catch (NumberFormatException ex) { return false;} } return true; } 22

Exceptions Besonderheiten Mathematische Fehler Exceptions werden nur bei ganzzahligen Typen geworfen. System.out.println("Erg: " + 2.0 / 0); // Ergebnis: Infinity // vergleiche java.lang.float.positive_infinity System.out.println("Erg: " + 2 / 0); // Laufzeitfehler: ArithmeticException: by zero 23

Eigene Exceptions Es ist möglich, eigene Fehlerklassen aus den vorhandenen abzuleiten. public class MyException extends IllegalArgumentException { public MyException() { super(); } public MyException(String s) { super(s); } public String getmessage() { return "Meine feste Fehlermeldung!";} } 24

Exceptions Ablauf (noch mal) Wenn eine Exception auftritt, sucht das Laufzeitsystem erst in der unmittelbaren trycatch-anweisung, die diesen Fehler behandelt. Wird diese nicht gefunden, wird die Suche in den weiteren umgebenden Blöcken fortgesetzt. Wird auch hier nichts gefunden, wird die Exception an den Aufrufer weitergereicht falls keine Behandlung der Exception erfolgt, bricht das Programm ab. 25

26

Persistenz Was ist das? Wie kann man das erreichen? 27

Serialisieren von Objekten in Java Objekte werden von Java in einer Datei gespeichert und können wieder geladen werden. Alle relevanten Objekte müssen das Interface java.io.serializable implementieren. 28

Serialize - Deserialize Referenzierende Objekte werden automatisch mit gespeichert (serialize) und auch mit geleaden (deserialize). A B class A implements Serializable { private B b; public A() { b = new B(); } } 29

Beispiel: Java Serialize public class Person implements Serializable { String name; ArrayList nummern = new ArrayList(); } class PersTest { public static void main(string[] args) { Person a = new Person( Fred ); ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream( filename ); os.writeobject(a); os.close; ObjectInputStream is = new ObjectInputStream(new FileInputStream( filename ); Person b = (Person)is.readObject(); is.close(); } } nicht klausurrelevant 30

In eine Datei schreiben File file = new File("test.txt"); try { FileWriter fw = new FileWriter(file); fw.write("hallo Welt"); fw.flush(); } catch (Exception ex) { ex.printstacktrace(); } 31

CSV Comma-Separated Values Stunde;Montag;Dienstag;Mittwoch;Donnerstag;Freitag 1;Mathe;Deutsch;Englisch;Mathe;Kunst 2;Sport;Französisch;Geschichte;Sport;Geschichte 3;Sport;"Religion ev;kath";kunst;deutsch;kunst 32

Streams und Dateien Um Daten zwischen zwei oder mehreren Rechnern auszutauschen bedient man sich der Streams. Streams (Ströme) sind vergleichbar mit einem Datentunnel zwischen zwei Rechnern. Wenn man an einem Ende etwas eingießt, kommt es am anderem Ende wieder raus (Gartenschlauch nur in eine Richtung benutzbar). 33

Streams und Dateien Rechner A Eingang Rechner B Eingang Ausgang Ausgang 34

Streams und Dateien Die obersten Streamklassen sind die abstrakten Klassen InputStream und OutputStream. Diese Klassen bieten Methoden zum Lesen bzw. Schreiben von einzelnen Bytes oder Byte Feldern. Um die Funktionalität zu erweitern, müssen die oberen Klassen erweitern werden. 35

Streams und Dateien Auch Klassen zum Zugriff auf Dateien sind vorhanden: Beispiel: DataInputStream / DataOutputStream FileInputStream / FileOutputStream FileWriter / FileReader zum Lesen oder Schreiben von Textdateien 36

Schreiben in Dateien (Wiederholung) File file = new File("test.txt"); try { FileWriter fw = new FileWriter(file); fw.write("hallo Welt"); fw.flush(); } catch (Exception ex) { ex.printstacktrace(); } 37

Kompaktes Lesen (seit Java 5) java.util.scanner 38

Kompaktes Lesen (seit Java 5) java.util.scanner public void readfile(string filename) { } try { Scanner scanner = new Scanner(new File(filename)); while (scanner.hasnextline()){ String str = scanner.nextline();.. } } catch (Exception e) { e.printstacktrace(); } 39

Strings - StringTokenizer Um eine Zeichenkette zu analysieren kann die Klasse StringTokenizer verwendet werden. Constructor Summary StringTokenizer(String str) Constructs a string tokenizer for the specified string. StringTokenizer(String str, String delim) Constructs a string tokenizer for the specified string. StringTokenizer(String str, String delim, boolean returndelims) Constructs a string tokenizer for the specified string. 40

Strings - StringTokenizer Beispiel String str ="Dies ist; ein String!"; StringTokenizer stkn; stkn = new StringTokenizer(str, "; ); while (stkn.hasmoretokens()) { System.out.println(stkn.nextToken()); } 41

Tabellenkalkulationsprogramme einfache Datenlisten (Tabellen) man kann einfach Diagramme erstellen, zum Austausch von Daten (CSV), um automatische Kalkulationen durchzuführen,

DBS / DBMS / DB Was ist das? Wann braucht man so etwas? 43

44

Vorteile DBS Redundanz und Inkonsistenz Werden durch die zentrale Datenverwaltung und Datenhaltung vermieden. Beschränkung der Zugriffsmöglichkeiten Durch verschiedene Konzepte können Informationen miteinander verknüpft werden (z.b. relationales Modell). Eingeschränkter Mehrbenutzerbetrieb Durch die zentrale Benutzerverwaltung einfach zu realisieren. Integritätsverletzungen Durch Constraints in der zentralen Datenverwaltung gut umzusetzen. Sicherheitsprobleme Durch die zentrale Benutzerverwaltung können Zugriffsrechte gut kontrolliert werden. 45

weitere Vorteile von DBS Physische Datenunabhängigkeit: Anwendungen von Modifikationen an der physischen Speicherstruktur nicht betroffen. Logische Datenunabhängigkeit: Änderungen an der logischen Datenstruktur beeinflussen Anwendungen nicht umbedingt. Dauerhafte Speicherung von großen Datenbeständen. Bereitstellung einer Anfragesprache zum einfachen Umgang mit der Datenbank. Sicherheit gegenüber Hard- und Softwareausfällen (Recovery). Effizient, möglichst schnell unter Benutzung weniger Ressourcen. 46

Fragen um herauszufinden, ob man ein DBMS benötigt: 1. Liegt eine große Datenmenge vor, die schwer zu managen ist? Braucht es lange das Dokument zu öffnen? Ist das Betrachten der Daten ist schwierig, muss man viel scrollen und ist es scher die gesuchten Daten zu finden? 2. Arbeiten verschiedene Personen/Anwendungen mit den Daten? 3. Gibt es weitere Daten, die mit den gegebenen Daten in Relation stehen und ebenfalls gespeichert werden? Ziehen Änderungen an einer Stellen Änderungen an anderen Stellen nach sich? 4. Werden die gleichen Daten an unterschiedlichen Orten verwendet?

Wichtige Datenbanken Oracle IBM DB2 SQL Server MySQL PostgreSQL Caché Company Revenue 2007 Oracle 8,343 Mrd. Dollar 37,6% IBM 4,879 Mrd. Dollar 22,0% Microsoft 4,670 Mrd. Dollar 21,0% Market share 2007 aus Computerwoche Nr. 3 vom 16. Januar 2009 48

Arten von DBMS - Datenbankmodelle relational RDBMS. objektorientiert OODBMS. Mischformen objektrelationale Modell ORDBMS. und viele andere: hierarchisch, netzwerkartig,

Erste Schritte Was sind die Anforderungen? Was sind die Ziele? Ist bekannt was gespeichert werden soll? Design des Datenmodels

Design Im Englischen und Französischen bedeutet design Gestaltung oder Entwurf, deutschen Sprachgebrauch, der eher auf formal/künstlerische Aspekte abzielt und den Designbegriff weitgehend verdinglicht, umfasst der angelsächsische Begriff design auch technisch-konstruktive Anteile der Gestaltung. aus Wikipedia: Design applied arts and engineering

(E)ER Modell Siehe auch: C. Maria Keet: A formal comparison of conceptual datamodeling languages (http://ftp.informatik.rwth-aachen.de/publications/ceur- WS/Vol-337/paper3.pdf) Picture by: Frank Roeing

Entity-Relationship-Modell Zur Beschreibung der realen Welt!