Grundlagen zu Assertions
|
|
- Joachim Schäfer
- vor 6 Jahren
- Abrufe
Transkript
1 Assertions und Annotations Assertions und Annotations Grundlagen zu Assertions Mit Assertions (Behauptungen) können Sie während der Entwicklungszeit zu Testzwecken gezielt einzelne Programmzustände überwachen. Die Behauptung wird so als Bedingung (boolescher Ausdruck) formuliert, dass sie den Wert true liefert, wenn das Programm ordnungsgemäß abläuft. Trifft die Behauptung nicht zu, wird eine Exception AssertionError ausgelöst und das Programm wird sofort beendet. Sie können nun prüfen, wie der fehlerhafte Programmzustand entstanden ist. Die Auswertung der Assertions wird bei der Ausführung des Interpreters eingeschaltet. Standardmäßig ist die Auswertung der Assertions ausgeschaltet. Assertions dürfen nicht eingesetzt werden, um einen korrekten Programmablauf zu sichern, da ihre Ausführung auch ausgeschaltet werden kann. Assertions sollten keine Seiteneffekte (side effects) bei der Auswertung der Ausdrücke auslösen, z. B. wenn zur Auswertung des Ausdrucks Methodenaufrufe notwendig sind, die den Zustand des Programms ändern. Assertions einsetzen Syntax für eine Assertion Eine Assertion beginnt mit dem assert expression1: stringexpression; Schlüsselwort assert. Es folgt ein Ausdruck, der einen Wert vom Typ boolean liefert. Wird dieser Ausdruck zu true ausgewertet, wird das Programm mit der nächsten Anweisung fortgesetzt. Liefert der Ausdruck den Wert false, wird eine AssertionError-Exception ausgelöst. Zusätzlich zu der Bedingung geben Sie mit einem Doppelpunkt 5 abgetrennt einen String- Ausdruck als erläuternde Fehlermeldung an. Der String wird der AssertionError- Exception als Parameter übergeben. Über die Methode getmessage kann der Text der so festgelegten Fehlermeldung beim Abfangen der Exception ausgewertet werden. Eine Variante der assert-anweisung besitzt keinen assert expression2; speziellen Meldungstext. Beispiel: com\herdt\java9\kap18\asserttest.java Beim Start der Anwendung soll der Benutzer eine Zahl zwischen 10 und 50 eingeben, um die maximale Betriebstemperatur einer Maschine festzulegen. HERDT-Verlag 1
2 18 Assertions und Annotations Wird ein Wert außerhalb des Intervalls eingegeben, wird die Temperatur auf den Standardwert 20 Grad gesetzt. Gibt der Benutzer keine Zahl, sondern beispielsweise Text ein, wird eine Exception ausgelöst. Allerdings wurde an dieser Stelle vergessen, den Initialwert von i (die Zahl 0) auf eine Temperatur im Intervall (beispielsweise auf den Standardwert) zu setzen. Durch die zusätzliche Assertion am Ende der Methode wird dies bemerkt und eine entsprechende Meldung ausgegeben. public static void main(string args[]) final int TEMPERATURE_STANDARD = 20; int i = 0; try if (args.length > 0) i = Integer.parseInt(args[0]); if (!((i >= 10) && (i <= 50))) i = TEMPERATURE_STANDARD; catch (NumberFormatException nfe) System.out.println ("Als Parameter eine Zahl zwischen 10 und 50 eingeben."); assert ((i >= 10) && (i <= 50)): "ASSERT: Die Zahl " + i + " lag nicht zwischen 10 und 50"; System.out.println("Eingestellte Temperatur: " + i); Der try-catch-block fängt die Exception ab, die möglicherweise bei der Umwandlung des Programmparameters in eine Zahl erzeugt wird. Es wird geprüft, ob sich der übergebene Wert im Intervall befindet. Ansonsten wird die Temperatur auf den vordefinierten Standardwert 20 gesetzt. Wenn sich der Parameterwert nicht in eine Zahl umwandeln lässt, wird eine NumberFormatException ausgelöst. Bei der Exception-Behandlung wird hier allerdings die Temperatur nicht auf den Standardwert 20 gesetzt. Am Schluss der Methode wird behauptet (Assertion), dass der Wert innerhalb des Intervalls liegt. Wenn diese Behauptung nicht zutrifft (wenn die Temperatur nicht im Intervall liegt), löst die Assertion eine Exception (AssertionError) aus. Das Programm wird sofort mit einer entsprechenden Meldung mit dem vorgegebenen Text angehalten. Sie haben die Möglichkeit, einen AssertionError, d. h. eine Exception, die durch eine assert-anweisung ausgelöst wurde, mit einem try-catch-block abzufangen und zu behandeln. Da dies den Programmcode unnötig erweitert, wird ein AssertionError üblicherweise nicht behandelt. Aussagekräftige Hinweise in der assert-anweisung genügen gewöhnlich als Information. 2 HERDT-Verlag
3 Assertions und Annotations 18 Anwendungsmöglichkeiten für Assertions Nachbedingung prüfen Nicht erreichbare Programmteile kennzeichnen Mit einer Assertion am Ende einer Methode kann beispielsweise geprüft werden, ob die Methode korrekte Ergebnisse liefert. public void somethingtodo() boolean status = true;... assert status: "Der Status darf sich nicht ändern."; Mit einer Assertion können Sie überwachen, ob Programmteile, die nicht erreicht werden sollen, auch tatsächlich nicht ausgeführt werden. Im nachfolgenden Beispiel ist vorgesehen, dass alle möglichen Werte für value in der switch-anweisung mit case berücksichtigt werden. Sollte jedoch ein anderer Wert auftreten, so würde bei default die Assertion ausgelöst. Die Assertion enthält hier als Behauptung den Wert false. Sie wird daher immer ausgelöst, sobald der Programmteil erreicht wird. switch (value) //nur die Werte 1 und 2 sollten auftreten case 1:... break; case 2:... break; default: assert false: value; //Als Text wird der Wert ausgegeben Grundsätzlich haben Sie auch die Möglichkeit, eine Vorbedingung zu prüfen, d. h. eine Assertion am Anfang einer Methode zu verwenden, mit der Sie beispielsweise die Gültigkeit von Werten prüfen, die als Parameter übergeben wurden. Üblicherweise wird eine solche Prüfung der Vorbedingung jedoch nicht vorgenommen, da die Methode keinen Einfluss auf die korrekte Arbeitsweise der aufrufenden Methode hat. Bei der Programmentwicklung ist es hilfreicher, mit einer Nachbedingung zu prüfen, ob eine Methode korrekte Ergebnisse liefert, statt mit einer Vorbedingung den Erhalt sinnvoller Werte zu prüfen. Assertions bei der Programmausführung auswerten Standardmäßig ist die Auswertung von Assertions ausgeschaltet, d. h., die Anweisungen werden bei der Programmausführung ignoriert. Im Quelltext verwendete assert-anweisungen werden aber in die *.class-datei kompiliert, unabhängig davon, ob sie später verwendet werden sollen. Um Assertions zu verwenden, müssen diese bei der Ausführung des Programms über den Interpreter angeschaltet werden (die Ausführungsgeschwindigkeit wird durch die Auswertung von Assertions nicht spürbar langsamer). HERDT-Verlag 3
4 18 Assertions und Annotations Fügen Sie dem Befehl zur Ausführung des Programms die Option -ea (enable Assertions) hinzu: java -ea ClassName Auf diese Weise wird die Verwendung der Assertions für alle verwendeten Klassen angeschaltet. Es besteht weiterhin die Möglichkeit, die Verwendung von Assertions für bestimmte Klasse und Packages (einschließlich der SubPackages) ein- bzw. auszuschalten. Sie können mehrere Optionen zum Ein- bzw. Ausschalten der Assertions kombinieren. -ea, -da -esa, -das -ea:classname -da:classname -ea:... -da:... -ea:packagename... -da:packagename... Über diese Parameter schalten Sie die Verwendung von Assertions für alle Klassen (ohne Systemklassen) ein (-ea Kurzform für -enableassertions) oder aus (-da Kurzform für -disableassertions). Um auch die Systemklassen einzubeziehen, verwenden Sie die Option -esa. Die Verwendung von Assertions wird für die angegebene Klasse ein- bzw. ausgeschaltet. Die Verwendung von Assertions wird für das Default-Package (das aktuelle Verzeichnis) ein- bzw. ausgeschaltet. Die Verwendung von Assertions wird für das angegebene Package, einschließlich aller SubPackages, ein- bzw. ausgeschaltet. Beispiel java -ea -da:myclass -da:com.herdt.java9... java -ea:myclass -ea:com.herdt.java9... Der erste Beispielbefehl schaltet die Verwendung von Assertions zunächst für alle Klassen ein und schränkt dies dann ein: Die Auswertung von Assertions wird für die Klasse MyClass und für das Package com.herdt.java9, inklusive aller SubPackages, ausgeschaltet. Die Verwendung ist standardmäßig ausgeschaltet. Deshalb wird der Schalter -da nicht explizit im zweiten Beispiel angegeben. Hier wird die Auswertung der Assertions für die Klasse MyClass und das Package com.herdt.java9 einschließlich aller SubPackages eingeschaltet. Annotations Grundlagen zu Annotations Annotations sind Metadaten zur Beschreibung des im Programm enthaltenen Programmcodes. Diese Metadaten werden selbst in den Programmcode eingefügt. Sie selbst liefern nur eine Information, deren Auswertung muss anderweitig erfolgen. Mögliche Komponenten zur Beschreibung mit Metadaten sind Klassen, Methoden, Felder, Parameter, Variablen, Konstruktoren, Pakete und seit Java 8 auch Typen. 4 HERDT-Verlag
5 Assertions und Annotations 18 Annotations sind seit Java 5 ein Sprachbestandteil von Java. Im Umfeld von Java EE finden sie verstärkt Einsatz, dienen dort aber auch Konfigurationszwecken. Die Auswertung von Annotations erfolgt direkt durch den Compiler, durch spezielle Werkzeuge oder auch programmatisch durch sogenannte Reflections. Syntax für eine [(Schlüssel1 = Wert1[, Schlüssel,2 = Wert2[, ]])] Eine Annotation beginnt mit dem Danach folgt der Name der Annotation. Dieser wird großgeschrieben. Annotations können zusätzliche Informationen enthalten. Es wird unterschieden zwischen: Marker-Annotations diese enthalten keine zusätzliche Information. Die Klammern müssen hier nicht mit angegeben werden, Annotations mit einem Wert (Single-Value-Annotation). Der Schlüssel des Wertes wird im Regelfall value benannt. Ist dies der Fall, muss die Bezeichnung des Wertes nicht mit angegeben werden, Annotations mit mehreren Werten (volle Annotation). Bei diesen werden die Informationen als Schlüssel/Wert-Paare gesetzt, = 0, max = 5) Vordefinierte Annotationstypen Das Package java.lang enthält vordefinierte Annotationstypen, die vom Compiler ausgewertet werden und Meldungen beim Compilieren erzeugen @SafeVarargs Veraltete Programmbestandteile (Klassen, Methoden ) können mit dieser Annotation gekennzeichnet werden. Kennzeichnet ein Interface als Funktionales Interfaces (Das Interface besitzt nur eine abstrakte Methode), ab Version 9 Die Kennzeichnung von Methoden einer Klasse, welche aus Basisklassen oder Interfaces geerbt und überschrieben werden sollen, erfolgt mit dieser Annotation. Dient der Unterdrückung von Warnungen des Compilers. Diese Annotation wird für die Kennzeichnung von Methoden mit variabler Argumentzahl genutzt. Weitere Annotationstypen, die zur Definition von Annotations benötigt werden, sind im Package java.lang.annotation enthalten. HERDT-Verlag 5
6 18 Assertions und Annotations Neben der Verwendung der vordefinierten Annotationstypen besteht die Möglichkeit, eigene Annotations zu erstellen. Der Aufbau einer Annotation entspricht dem eines Interface. Die Auswertung eigener Annotations erfolgt über sogenannte Reflections. Beispiel: Anwendung zur Kennzeichnung einer überschriebenen Methode com\herdt\java9\kap18\annotationoverridesuper.java com\herdt\java9\kap18\annotationoverride.java Im Beispiel wird durch einen Fehler beim Festlegen des Methodennamens der zu überschreibenden Methode durch die verwendete eine Fehlermeldung vom Compiler ausgelöst. package com.herdt.java9.kap18; class AnnotationOverrideSuper public void writetext() System.out.println("Ausgabe der Superklasse"); In der Klasse AnnotationOverrideSuper wird eine einfache Methode writetext() definiert. package com.herdt.java9.kap18; class AnnotationOverride extends public void writetex() System.out.println("Ausgabe der abgeleiteten Klasse"); public static void main (String[] args) AnnotationOverride instance = new AnnotationOverride(); instance.writetext(); Die Klasse AnnotationOverride wird von der Klasse AnnotationOverrideSuper abgeleitet. Die gibt an, dass die folgende Methode eine Methode der Superklasse überschreibt. 6 HERDT-Verlag
7 Assertions und Annotations 18 Beim Namen der zu überschreibenden Methode wird ein Buchstabe 'vergessen'. Die Methode writetex() ist nicht in der Superklasse vorhanden. Durch die Annotation wird beim Kompilieren ein Fehler erzeugt. Ein Auskommentieren der Annotation führt dazu, dass der Compilerlauf erfolgreich abgeschlossen wird. Die erzeugte Ausgabe heißt dann jedoch "Ausgabe der Superklasse" und nicht wie beabsichtigt "Ausgabe der abgeleiteten Klasse". C:\uebung\jav9_bu\com\herdt\java9\kap18\AnnotationOverride.java:5 : error: method does not override or implement a method from a ^ Meldung des Compilers durch den fehlerhaften Methodennamen Beispiel: Anwendung zur Kennzeichnung einer veralteten Methode com\herdt\java9\kap18\annotationdeprecatedsuper.java com\herdt\java9\kap18\annotationdeprecated.java Im Beispiel wird mit der in der Oberklasse eine Methode als veraltet gekennzeichnet. Beim Kompilieren der Klasse, welche von dieser Klasse abgeleitet ist, wird zuerst nur eine einfache Meldung angezeigt. Gleichzeitig erfolgt der Hinweis, dass bei Anwendung des Schalters -Xlint:deprecation detailliertere Informationen geliefert werden. Note: C:\uebung\jav9_bu\com\herdt\java9\kap18\AnnotationDeprecated.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Meldung des Compilers bei Standard-Compilierung Nach einem erneuten Kompilieren mit dem Schalter wird eine detaillierte Meldung auf der Konsole ausgegeben. C:\uebung\jav9_bu\com\herdt\java8\kap18\AnnotationDeprecated.java :8: warning: [deprecation] writetext() in AnnotationDeprecatedSuper has been deprecated instance.writetext(); ^ 1 warning Compilermeldung bei Kompilierung mit dem Schalter -Xlint:deprecation HERDT-Verlag 7
8 18 Assertions und Annotations Übung Assertions Level Zeit ca. 10 min Übungsinhalte Übungsdatei -- Anwendung von Assertions Ergebnisdatei Exercise.java 1. Einem Programm sollen zwei Parameter übergeben werden. Überprüfen Sie die korrekte Anzahl der Parameter über eine Assertion. 2. Starten Sie das Programm mit und ohne Verwendung von Assertions. 8 HERDT-Verlag
Ausnahmen (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)
Abschnitt 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
Javakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
Ü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
9. 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
9. 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
Kapitel 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
Javakurs für Anfänger
Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
Exception. 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
Grundlagen 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
Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur
Grundlagen der Programmierung Teil1 Einheit III Okt. 2010
Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den
Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
Zuverlä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
Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8
Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
Einfü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
Einstieg 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
Methoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
Ausnahmen. 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
12 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,
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
3. 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
3. Anweisungen und Kontrollstrukturen
3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen
Johannes 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
Einfü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)
Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung
14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Korrektheit und Hoare-Kalkül für Imperative Programme
Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül
System.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
Ausnahmenbehandlung 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
14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
Programmieren 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
14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
Ausdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI
Ausdrücke in Scala Funktionale Programmierung Christoph Knabe FB VI 17.10.2014 Inhalt Einfache Ausdrücke Infix-Notation für Methodenaufruf Sonderzeichen in Bezeichnern Schlüsselwörter Konstanten Variablen
Die 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:
Umgang 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.
1. Welche Programmzeilen definieren die main-methode richtig?
Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Welche Programmzeilen definieren
Ausnahmebehandlung. 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,
Grundlagen 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();
Fehler 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
CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
Einführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
Dr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
Meta Programming and Reflection in Java
Meta Programming and Reflection in Java Overview instanceof operator Java Annotations Java Reflection instanceof operator vergleicht ein Objekt mit einem bestimmten Typ testet ob ein Objekt ist eine Instanz
Ausnahmen. 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
C# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue
C# - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Fehler in einem Programm Warnungen sind Hinweise auf eventuelle Fehler während der Laufzeit des Programms.
Prüfung Softwareentwicklung II (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr
4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
Exceptions 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
Kapitel 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
Grundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
Grundlagen der Programmierung Teil1 Einheit III Okt. 2009
Grundlagen der Programmierung Teil1 Einheit III - 23. Okt. 2009 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Ausdrücke & Anweisungen
Java: Eine kurze Einführung an Beispielen
Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse
Anweisungen zur Ablaufsteuerung
Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden
Objektorientierte 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
Java für Anfänger Teil 4: Anweisungen. Programmierkurs Manfred Jackel
Java für Anfänger Teil 4: Anweisungen Programmierkurs 11.-15.10.2010 Manfred Jackel Anweisungen Werzuweisung (hatten wir schon) Verzweigung Fallunterscheidung Schleifen Methodenaufruf Wiederholung: Klassendeklaration
Einfü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
Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
Verträ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
Gliederung 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
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
hue13 January 30, 2017
hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
Liste 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
Prüfung Softwareentwicklung I (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 1 B Wintersemester 2017/18 Prüfung Softwareentwicklung I (IB) Datum : 01022018, 14:30 Uhr Bearbeitungszeit
Javakurs für Anfänger
Javakurs für Anfänger Einheit 05: Programmablauf Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Nutzereingaben EVA Prinzip Eingaben über die Konsole Eingaben über GUI
(Ausnahmebehandlung)
16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2
hue12 January 24, 2017
hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken
Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken Aufgabe 1.60 a) Welchen Wert erhält die boolesche Variable z in folgendem Beispiel? int i = 2, j = 5; boolean
Einfü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
Programmieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
Java Anweisungen und Ablaufsteuerung
Informatik 1 für Nebenfachstudierende Grundmodul Java Anweisungen und Ablaufsteuerung Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht
Java-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen
Einstieg 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
Innere 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
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollstrukturen - 1 - Anweisung Anweisung Zuweisung Methodenaufruf
Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
II.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)
EINFÜ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
Soll 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
Systematisches Testen
Systematisches Testen SEP 136 Unit Testing Objektorientierte Entwicklung Entwicklung von vielen unabhängigen Einheiten (Klassen, Methoden), aus denen das Gesamtprogramm zusammengesetzt wird. Ziel: Wenn
Funktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
Ü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
Algorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration
Info B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
Selectionsort 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
1.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
Einstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung