Beispielerweiterung JUnitParams (1/4)
|
|
- Bärbel Günther
- vor 5 Jahren
- Abrufe
Transkript
1 Beispielerweiterung JUnitParams (1/4) Parametrisierte Tests in JUnit nur elementar unterstützt mehrfache Parameternutzung nur über mehrere Testklassen JUnitParams flexibilisiert Parametrisierung benutzt eigenen Runner; Kombination von Runnern nicht möglich entwickelt, gewartet von nur einer Person hier nur Ausschnitt aus Funktionalität Stephan Kleuker 97
2 Beispielerweiterung JUnitParams (2/4) import junitparams.junitparamsrunner; import public class JUnitParamesBeispieleTest public void "AO,73") public void testdirektannotiert(string s, int z) { System.out.println(s + " " +z); before IA 42 before AO 73 Stephan Kleuker 98
3 Beispielerweiterung JUnitParams (3/4) private String[][] daten0 = {{"Hai", "wo", "da", {"Um", "Lei", "Tung" ; public Object datenmethode1(){ = "datenmethode1") public void test1(string s1, String s2, String s3){ System.out.println(s1 +s2 + s3); before Haiwoda before UmLeiTung Stephan Kleuker 99
4 Beispielerweiterung JUnitParams (4/4) private Object[][] daten1 = {{"IA", 42, Instant.MIN,{"AO", 73, new Date().toInstant() ; public Object datenmet2(){ return daten1; public List<Object> datenmet3(){ return Arrays.asList(daten1); public Iterator<Object[]> datenmet4(){ = "datenmeth2, datenmet3, datenmet4") public void test2(string s1, int s2, Instant s3){ System.out.println(s1 + " " + s2 + " " + s3); before IA before AO T16: before IA before AO T16: before IA before AO T16: Stephan Kleuker 100
5 3. Äquivalenzklassentests Motivation der Äquivalenzidee typische Findung von Äquivalenzklassen integrierte Grenzwertanalyse abgeleitete Testfälle Stephan Kleuker 101
6 Klassen von Testfällen In der Literatur gibt es recht unterschiedlich detaillierte Klassifizierungen von Testfällen, eine erste grobe Einteilungsmöglichkeit ist : Datenbezogene Testfälle: Ausgehend von der Spezifikation des zu untersuchenden Objekts werden verschiedene Eingaben überlegt, deren gewünschtes Resultat aus der Spezifikation abzuleiten ist Ablaufbezogene Testfälle: Es wird die Struktur des zu untersuchenden Programms analysiert und versucht, möglichst alle Ablaufalternativen (if, while) durchzuspielen Stephan Kleuker 102
7 Äquivalenzklassenbildung Äquivalenzklassenbildung zerlegt Menge in disjunkte Teilmengen jeder Repräsentant einer Teilmenge hat das gleiche Verhalten bzgl. einer vorgegebenen Operation Beispiel: Restklassen (modulo x), werden zwei beliebige Repräsentanten aus Restklassen addiert, liegt das Ergebnis immer in der selben Restklasse Übertragungsidee auf Tests: Eingaben werden in Klassen unterteilt, die durch die Ausführung des zu testenden Systems zu gleichartigen Ergebnissen führen Stephan Kleuker 103
8 Beispiele für Äquivalenzklassen von Eingaben erlaubte Eingabe: 1 <= Wert <= 99 (Wert sei ganzzahlig) eine gültige Äquivalenzklasse: 1 <= Wert <= 99 zwei ungültige Äquivalenzklassen: Wert < 1, Wert > 99 erlaubte Eingabe in einer Textliste: für ein Auto können zwischen einem und sechs Besitzer eingetragen werden eine gültige Äquivalenzklasse: ein bis sechs Besitzer zwei ungültige Äquivalenzklassen: kein Besitzer, mehr als sechs Besitzer erlaubte Eingabe: Instrumente Klavier, Geige, Orgel, Pauke vier gültige Äquivalenzklassen: Klavier, Geige, Orgel, Pauke eine ungültige Äquivalenzklasse: alles andere, z.b. Zimbeln Stephan Kleuker 104
9 Regeln zur Bildung von Äquivalenzklassen man muss mögliche Eingaben kennen (aus Spezifikation) für einfache Zahlenparameter meist einfach: Intervall mit gültigen Werten eventuell Intervall mit zu kleinen und Intervall mit zu großen Werten (wenn z. B. alle int erlaubt, gibt es nur eine Äquivalenzklasse, etwas schwieriger bei double) explizit eine Menge von Werten vorgegeben: jeder Wert eine Äquivalenzklasse dar andere Eingaben möglich: zusätzliche Äquivalenzklasse falls nach Analyse der Spezifikation Grund zur Annahme besteht, dass Elemente einer Äquivalenzklasse unterschiedlich behandelt werden, ist die Klasse aufzuspalten Stephan Kleuker 105
10 Beispiel (1/5) Spezifikation: Als Beispiel dient eine Methode, genauer ein Konstruktor, zur Verwaltung von Studierendendaten, der ein Name, ein Geburtsjahr und ein Fachbereich übergeben werden. Dabei darf das Namensfeld nicht leer sein, das Geburtsjahr muss zwischen 1900 und 2000 liegen und es können nur die Fachbereiche FBING, FBBWL und FBPOL aus einer Aufzählung übergeben werden. Stephan Kleuker 106
11 Beispiel (2/5) Äquivalenzklassen: Eingabe gültige Äquivalenzklassen Name Ä1) nicht leer Ä2) leer ungültige Äquivalenzklassen Geburtsjahr Ä4) 1900< = Geburtsjahr <= 2000 Fachbereich Ä6) FBING Ä7) FBBWL Ä8) FBPOL Ä3) Geburtsjahr < 1900 Ä5) Geburtsjahr > 2000 Stephan Kleuker 107
12 Testfallerzeugung aus Äquivalenzklassen Die Äquivalenzklassen sind eindeutig zu nummerieren. Für die Erzeugung von Testfällen aus den Äquivalenzklassen sind zwei Regeln zu beachten: gültige Äquivalenzklassen: möglichst viele Klassen in einem Test kombinieren ungültige Äquivalenzklassen: Auswahl eines Testdatums aus einer ungültigen Äquivalenzklasse Kombination mit Werten, die ausschließlich aus gültigen Äquivalenzklassen entnommen sind. Grund: für alle ungültigen Eingabewerte muss eine Fehlerbehandlung existieren Stephan Kleuker 108
13 Beispiel (3/5) Testfälle nach einer Äquivalenzklassenanalyse: (jeder Klasse wird [mindestens] einmal getestet, die Testanzahl soll möglichst gering sein) Testnummer geprüfte Äquivalenzklassen Ä1 Ä4 Ä6 (Ä1) (Ä4) Ä7 (Ä1) (Ä4) Ä8 Ä2 Ä3 Ä5 Name Mei Max Schulz Meier Meier Geburtsjahr Fachbereich FBING FBBWL FBPOL FBING FBING FBING Ergebnis ok ok ok Abbruch Abbruch Abbruch Stephan Kleuker 109
14 Grenzwertanalyse Viele Software-Fehler sind auf Schwierigkeiten in Grenzbereichen der Äquivalenzklassen zurück zu führen (z.b. Extremwert nicht berücksichtigt, Array um ein Feld zu klein) Untersuchung von Äquivalenzklassen um die Untersuchung der Grenzen ergänzt Beispiel: 1<=Wert<=99 (wobei Wert ganzzahlig ist) Äquivalenzklasse Int-Wert<1: obere Grenze Wert=0 (untere Grenze spielt hier keine Rolle) Äquivalenzklasse Int-Wert>99: untere Grenze Wert=100 (obere Grenze spielt keine Rolle) Äquivalenzklasse 1<=Int-Wert<=99 : untere Grenze Wert=1 und obere Grenze Wert=99 Grenzfallbetrachtung geht direkt in die Testfallerzeugung ein (es gibt Ansätze, bei denen zusätzlich ein Fall mit einem Wert aus der Mitte der Äquivalenzklasse genommen wird) Stephan Kleuker 110
15 Beispiel (4/5) Testfälle nach einer Äquivalenzklassenanalyse und Grenzwertanalyse Anmerkung: Testfallanzahl erhöht sich meist Testnummer geprüfte Äquivalenzklassen Ä1 Ä4U Ä6 (Ä1) Ä4O Ä7 (Ä1) (Ä4) Ä8 Ä2 Ä3O Ä5U Name Mei Max Schulz Meier Meier Geburtsjahr Fachbereich FBING FBBWL FBPOL FBING FBING FBING Ergebnis ok ok ok Abbruch Abbruch Abbruch Stephan Kleuker 111
16 Beispiel (5/5) mögliche Übersetzung nach JUnit (Ausschnitt) public class ImmatrikulationTest public void test1(){ try{ new Immatrikulation("Mei",1900,Bereich.FBING); catch(immatrikulationsexception e){ Assert.fail("falsche public void test4(){ try{ new Immatrikulation("",1988,Bereich.FBING); Assert.fail("fehlende Exception"); catch(immatrikulationsexception e){... Stephan Kleuker 112
17 Erinnerung: Zahlenbereiche (1/2) public static void main(string[] args) { Double dmax = Double.MAX_VALUE; Double dmin = -dmax; Double c = 1.0E300; System.out.println("dmax: "+dmax); System.out.println("dmin: "+dmin); System.out.println("dmax+c: "+(dmax+c)); System.out.println("dmin+c: "+(dmin+c)); System.out.println("dmax-c: "+(dmax-c)); System.out.println("dmin-c: "+(dmin-c)); System.out.println("dmax durch 0.0: "+(dmax/0.0)); System.out.println("dmin durch 0.0: "+(dmin/0.0)); System.out.println("0.0 durch 0.0: "+(0.0/0.0)); int max = Integer.MAX_VALUE; int min = Integer.MIN_VALUE; System.out.println("max: "+max); System.out.println("min: "+min); System.out.println("max+1: "+(max+1)); System.out.println("min+1: "+(min+1)); System.out.println("max-1: "+(max-1)); System.out.println("min-1: "+(min-1)); System.out.println("durch 0: "+(max/0)); Stephan Kleuker 113
18 Erinnerung: Zahlenbereiche (2/2) dmax: E308 dmin: E308 dmax+c: Infinity dmin+c: E308 dmax-c: E308 dmin-c: -Infinity dmax durch 0.0: Infinity dmin durch 0.0: -Infinity 0.0 durch 0.0: NaN max: min: max+1: min+1: max-1: min-1: Exception in thread "main" java.lang.arithmeticexception: / by zero at wertebereiche.analyse.main(analyse.java:26) Stephan Kleuker 114
19 zweites Beispiel (1/4) - Spezifikation Spezifikationsausschnitt: Zu entwickeln ist eine Klasse Mitarbeiter, wobei jedes Mitarbeiterobjekt (Anf 1) einen änderbaren Nachnamen mit mindestens zwei Zeichen hat (Anf 2) eine Informationssammlung mit maximal drei Fachgebieten hat, die ergänzt und gelöscht werden können Aufbau einer Beziehung zwischen Methoden und Anforderungen Anf 1 Anf 2 Mitarbeiter(String, String) setnachname(string) getnachname() addfachgebiet(fachgebiet) removefachgebiet() Stephan Kleuker 115
20 zweites Beispiel (2/4) - Äquivalenzklassen setnachname(string nachname) Äquivalenzklassen mit Grenzwerten Ä1: String mit mindestens zwei Zeichen (gültig) Ä2: String mit einem Zeichen (ungültig) Ä3: null-referenz (ungültig) abgeleitet aus OO-Erfahrung Testnummer geprüft Ä1 Ä2U Ä3 nachname Me X null Ergebnis geändert Abbruch Abbruch Stephan Kleuker 116
21 zweites Beispiel (3/4) - public void testsetnachname1(){ Mitarbeiter m = new Mitarbeiter("Ute","Mai"); m.setnachname("me"); public void testsetnachname2(){ Mitarbeiter m = new Mitarbeiter("Ute","Mai"); public void testsetnachname3(){ Mitarbeiter m = new Mitarbeiter("Ute","Mai"); m.setnachname(null); Stephan Kleuker 117
22 zweites Beispiel (4/4) - Ein-/Ausgabeäquivalenz getnachname() Methode ohne Parameter generell bisher Eingabeäquivalenzklassen betrachtet; gibt auch Ausgabeäquivalenzklassen im Beispiel nur eine Klasse, da beliebige Strings Ergebnis (null nicht public void testgetnachname(){ Mitarbeiter m = new Mitarbeiter("Ute","Mai"); Assert.assertEquals("Mai", m.getnachname()); genauer: es gibt doch Eingabeparameter im Testszenario; Werte der Exemplarvariablen Stephan Kleuker 118
23 Äquivalenzklassenbildung und Objektorientierung Äquivalenzklassenbildung ist ein zentrales Verfahren, um systematisch Tests aufzubauen für Methoden von Objekten spielt neben Ein- und Ausgaben der interne Zustand häufig eine wichtige Rolle (erst wenn Methode x ausführt wurde, dann kann Methode y sinnvoll ausgeführt werden) Konsequenterweise muss man sich also mit dem Ein- /Ausgabeverhalten pro möglichem Objektzustand beschäftigen (was noch extrem aufwändiger sein kann) das bisher vorgestellte Verfahren kann in der reinen Form nur für gedächtnislose Objekte genutzt werden Stephan Kleuker 119
24 Äquivalenzklassen und Objekte (1/5) Spezifikation: In einem Bestellsystem wird für jeden Kunden im Objekt einer Klasse Zuverlaessigkeit festgehalten, wie er bezüglich seines Bezahlverhaltens eingestuft wird. Diese Einstufung wird durch die folgende Aufzählung beschrieben. public enum Bezahlstatus { STANDARD, GEPRUEFT, KRITISCH; Die Klasse Zuverlaessigkeit soll eine Methode anbieten, mit der geprüft werden soll, ob eine Bestellung über eine bestimmte Summe ohne eine weitere Liquiditätsprüfung erlaubt werden soll. Die Bestellung soll für geprüfte Kunden immer und für kritische Kunden nie ohne zusätzliche Prüfung möglich sein. Für sonstige Kunden muss eine Prüfung ab einer Bestellstumme von 500 erfolgen. Stephan Kleuker 120
25 Äquivalenzklassen und Objekte (2/5) public class Zuverlaessigkeit { // zu testende Klasse private Bezahlstatus status; public void setstatus(bezahlstatus status){ this.status=status; public boolean einkaufssummepruefen(int wert){ switch(status){ case GEPRUEFT:{ return true; case STANDARD:{ return wert<500; return false; Stephan Kleuker 121
26 Äquivalenzklassen und Objekte (3/5) erste Überlegung: nur Parameter wert zu testen, Ä1:[wert<500] und Ä2:[wert>=500] (zwei Tests) zweite Überlegung: Objektzustand als weiteren Parameter berücksichtigen; ergibt drei weitere Klassen Ä3, Ä4, Ä5: Testnummer geprüfte Äquivalenz klassen Ä1O Ä3 Ä2U Ä4 (Ä1O) Ä5 wert status STANDARD GEPRUEFT KRITISCH Ergebnis true true false Stephan Kleuker 122
27 Äquivalenzklassen und Objekte (4/5) - JUnit 3.8 import junit.framework.testcase; public class ZuverlaessigkeitTest extends TestCase { private Zuverlaessigkeit zvl; Vererbung bei 3.8 notwendig Methode muss setup heißen protected void setup() throws Exception { super.setup(); zvl= new Zuverlaessigkeit(); Testmethoden müssen mit test beginnen public void testeinkaufsummepruefen1(){ zvl.setstatus(bezahlstatus.standard); asserttrue(zvl.einkaufssummepruefen(499)); Stephan Kleuker 123
28 Äquivalenzklassen und Objekte (5/5) public void testeinkaufsummepruefen2(){ zvl.setstatus(bezahlstatus.geprueft); asserttrue(zvl.einkaufssummepruefen(500)); public void testeinkaufsummepruefen3(){ zvl.setstatus(bezahlstatus.kritisch); asserttrue(!zvl.einkaufssummepruefen(499)); Anmerkungen zu JUnit 3.8: Testklasse muss von TestCase erben Namen der Tests müssen mit test beginnen Stephan Kleuker 124
29 Beispiel weiter gedacht bisher Äquivalenzklassen für Variablen (Parameter + Exemplarklassen individuell) [ok, ist Testpflicht] konsequent müssen Kombinationen von Äquivalenzklassen betrachtet werden Variante 1: Alle Kombinationen betrachten (leider nur selten machbar) (d. h. sechs Tests) Variante 2 (intensives [fehlerträchtiges?] Studium der Spezifikation): Neue Äquivalenzklassen durch Kombination von alten Äquivalenzklassen betrachten: [status==geprueft] [status==standard && wert==499] [status==standard && wert==500] (fehlt bisher) [status==kritisch] Stephan Kleuker 125
30 Schwierige Äquivalenzklassenbildung (1/5) Spezifikation: Schreibe eine Methode max(), der drei Integer-Werte übergeben werden, die den größten Wert dieser Werte zurück gibt public class Maxi { public static int max(int x, int y, int z){ int max = 0; if (x>z) max = x; if (y>x) max = y; if (z>y) max = z; return max; nullter Klassenansatz: jeder Parameter darf beliebige Werte annehmen, jeweils eine Klasse für x, y, z erster Klassenansatz: es gibt keine Ausnahmefälle, also drei Ergebnisse : Maximum an erster, zweiter oder dritter Stelle Stephan Kleuker 126
31 Schwierige Äquivalenzklassenbildung (2/5) public class MaxiTest { public void testerstesmax(){ Assert.assertTrue("Maximum an erster Stelle", 7 == Maxi.max(7,5,4)); public void testzweitesmax(){ Assert.assertTrue("Maximum an zweiter Stelle", 7 == Maxi.max(5,7,4)); public void testdrittesmax(){ Assert.assertTrue("Maximum an dritter Stelle", 7 == Maxi.max(4,5,7)); Stephan Kleuker 127
32 Schwierige Äquivalenzklassenbildung (3/5) Alle Tests laufen erfolgreich! allerdings war die Klassenbildung zu ungenau, nächster Versuch mit den Klassen (Permutationen der Reihenfolge): x>=y>=z x>=z>=y z>=x>=y z>=y>=x y>=x>=z y>=z>=x [Frage: sind dies Äquivalenzklassen??] Stephan Kleuker 128
33 Schwierige Äquivalenzklassenbildung (4/5) sechs Testfälle, Ausschnitt: public void testxyz(){ Assert.assertTrue("X>=Y>=Z", 7 == Maxi.max(7,5,4)); public void testxzy(){ Assert.assertTrue("X>=Z>=Y", 7 == Maxi.max(7,4,5)); public void testyxz(){ Assert.assertTrue("Y>=X>=Z", 7 == Maxi.max(5,7,4)); Der Fall X>=Z>=Y offenbart, dass das Verfahren nicht funktioniert Allerdings ist die Äquivalenzklassenwahl nicht sauber Stephan Kleuker 129
34 Schwierige Äquivalenzklassenbildung (5/5) Saubere Äquivalenzklassen sind: x>y=z y=z>x y>x=z x=z>y z>y=x y=x>z z>y>x z>x>y y>z>x y>x>z x>z>y x>y>z x=y=z Bei Grenzwertanalyse muss Übergang zwischen untersuchten Klassen betrachtet werden, d.h. wenn zwei oder drei Argumente gleich sind (letzter Fall liefert auch Fehler) Aus Spezifikation nicht ableitbar, ggfs. aus der Erfahrung mit Mathematik zu ergänzen, ist Untersuchung negativer Zahlen Stephan Kleuker 130
35 Fazit zur Äquivalenzklassenanalyse Äquivalenzklassen zentrales Hilfsmittel bei der Testerstellung; können auf Programmcodeebene, aber auch bei Abnahmen genutzt werden Grundregel: Zu jedem Stück Spezifikation sollte man Tests mit Äquivalenzklassen schreiben können typisch ist, dass nicht alle Kombinationen von elementaren Äquivalenzklassen betrachtet werden können (was in kritischen Fällen anzustreben sein sollte) Ansatz: Betrachte mehrere Variablen zusammen; trotzdem kombinatorische Explosion möglich hilfreich wäre ein Maß, wie weit man beim Testen bereits ist ( Überdeckungsmaße) Stephan Kleuker 131
36 Wer erstellt die Tests neben Entwicklertests werden Integrations- und Systemtests von anderen (QS-)Personen erstellt wichtig ist immer, dass auch typisches Verhalten getestet wird diese Tests können auch von Endnutzern bzw. Fachabteilungen erstellt werden Beispiel: Was für Eigenschaften hat ein typischer Versicherungsnehmer; welche Extremfälle konnten beobachtet werden Fachabteilungen haben aber keine Programmierer; deshalb Such nach einfacheren Eingabemöglichkeiten Ansatz von Fit ( nutze Word und darin Tabellen, speichere Dokument zur Verarbeitung in html ab FitNesse ( basiert auf der Idee Stephan Kleuker 132
37 Fit (1/4): Word-Dokument (.doc oder.docx-format) Testklassenname, Parameter, Testmethodenname(n) in neuen Spalten; zunächst nur int, boolean, String möglich; Rest selbst zusammensetzen Stephan Kleuker 133
38 Fit (2/4): Tests (Ausschnitt) public class MITest1 extends ColumnFixture{ public String gebiet1; // Namen aus Dokument (public) public String gebiet2; public String gebiet3; public String gebietneu; public String hinzu(){ Mitarbeiter ma = new Mitarbeiter(); try { ma.addfachgebiet(fachgebiet.fachgebieterstellen(gebiet1)); ma.addfachgebiet(fachgebiet.fachgebieterstellen(gebiet2)); ma.addfachgebiet(fachgebiet.fachgebieterstellen(gebiet3)); catch (IllegalArgumentException e) { throw new IllegalArgumentException("Verfruehte Ausnahme"); try { ma.addfachgebiet(fachgebiet.fachgebieterstellen(gebietneu)); catch (IllegalArgumentException e) { return "fehler"; return "ok"; Stephan Kleuker 134
39 Fit (3/4): Aufruf Stephan Kleuker 135
40 Fit (4/4): Ausgabe output.html Stephan Kleuker 136
3. Äquivalenzklassentests. Motivation der Äquivalenzidee typische Findung von Äquivalenzklassen integrierte Grenzwertanalyse abgeleitete Testfälle
3. Äquivalenzklassentests Motivation der Äquivalenzidee typische Findung von Äquivalenzklassen integrierte Grenzwertanalyse abgeleitete Testfälle Stephan Kleuker 101 Klassen von Testfällen In der Literatur
Klassen von Testfällen. 3. Äquivalenzklassentests. Äquivalenzklassenbildung. Beispiele für Äquivalenzklassen von Eingaben
3. tests Motivation der Äquivalenzidee typische Findung von integrierte Grenzwertanalyse abgeleitete Testfälle Klassen von Testfällen In der Literatur gibt es recht unterschiedlich detaillierte Klassifizierungen
Klassen von Testfällen. 3. Äquivalenzklassentests. Äquivalenzklassenbildung. Beispiele für Äquivalenzklassen von Eingaben
3. Äquivalenzklassentests Motivation der Äquivalenzidee typische Findung von Äquivalenzklassen integrierte Grenzwertanalyse abgeleitete Testfälle Klassen von Testfällen In der Literatur gibt es recht unterschiedlich
X. Wiederholung: Systematische Test-Erstellung
X. Wiederholung: Systematische Test-Erstellung JUnit Äquivalenzklassenanalyse Überdeckungstests Mocking Vorgehensweisen der analytischen QS Hinweis: Um im Praktikum experimentieren zu können, erst wie
Java - Programmierung - Prozedurale Programmierung 1
Java - Programmierung - Prozedurale Programmierung 1 // elementare Datentypen public class el_dt public static void main(string args []) byte b = 127; short s = 32767; int i = 2147483647; long l = 9223372036854775807L,
M3 M4 M7 VORNAME: Nom-Kenner VERTIEFUNG: Ausdruck des vorab bekannt gemachten Quelltextes
NACHNAME: Poly SEMESTER: M5 M6 M3 M4 M7 VORNAME: Nom-Kenner VERTIEFUNG: FV IM ANLAGE, HILFSMITTEL: Ausdruck des vorab bekannt gemachten Quelltextes UNBEDINGT BEACHTEN: Bevor Sie mit der Bearbeitung beginnen,
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
M3 M4 M7 VORNAME: Gewinnt VERTIEFUNG:
NACHNAME: Vier SEMESTER: M5 M6 M3 M4 M7 VORNAME: Gewinnt VERTIEFUNG: FV IM VERWENDETE KLASSEN: Als Anlage erhalten Sie einen Ausdruck des vorab bekannt gemachten Quelltextes von verschiedenen Klassen.
Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
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
Eingeben, Ausgeben, Übergeben, Zurückgeben
Eingeben, Ausgeben, Übergeben, Zurückgeben eingeben: Werte werden vom Nutzer oder Eingabegeräten (z. B. Maus) eingelesen ausgeben: Werte werden auf der Konsole, in einem Display oder einer Datei ausgegeben
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
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
1 Programmierfehler und ihre Behebung
1 Programmierfehler und ihre Behebung (kleiner lebenspraktischer Ratgeber) Grundsätze: Jeder Mensch macht Fehler... insbesondere beim Programmieren. Läuft ein Programm, sitzt der Fehler tiefer. Programmierfehler
Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt.
432 433 434 435 Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 436 437 438 439 440 441 442 443 Die verkürzte
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
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)
Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme.
Aufgabe 1 a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Drei0 ::= 0 3 6 9 Drei1 ::= 1 4 7 Drei2 ::= 2 5 8 Drei ::= Drei0 Drei0 Drei1 Drei2 Drei2 Drei1 b) Gegeben sei
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
Programmiertechnik II
Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing
3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Schnittstellen Was bedeutet Orthogonalität / Separation of Concerns?
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
! 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
II.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
Beispiel: DB-Mock (1/7)
Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau
Probeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
Algorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
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
Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1
OOSE_02E Testen mit BlueJ/JUnit 4
OOSE_02E Testen mit BlueJ/JUnit 4 Lehrstuhl Softwaretechnologie, Dr. Birgit Demuth Sommersemester 2018 Vorgehen beim Unit-Test allgemein 1. Testfälle ausdenken / Testfalltabellen erstellen 2. Testfälle
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
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
Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt.
Thema: Grundlagen Programmierung Dozent: Prof. Dr. Stephan Kleuker Seitennummer: Seite 1 von 12 Studiengang: Informatik Technische Informatik Studiensemester: 1 Datum: 26.11.2018 Bearbeitungszeit: 120
Java Spickzettel von Panjutorials.de
Java Spickzettel von Panjutorials.de Hallo Welt public class HalloWelt public static void main(string[] args) // Gibt "Hallo Welt" auf die Konsole aus System.out.print("Hallo Welt"); Eine eigenständige
OOSE4 Testen mit BlueJ/JUnit 4
OOSE4 Testen mit BlueJ/JUnit 4 Lehrstuhl Softwaretechnologie, Dr. Birgit Demuth Sommersemester 2016 Vorgehen beim Unit-Test allgemein 1. Testfälle ausdenken / Testfalltabellen erstellen 2. Testfälle nach
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,
EINFÜ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
Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung
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
Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen
5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:
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)
Computeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) ArrayList 0 1 2 Obj0 Obj1 size() - 1 15.12.2014 CuP - VO 2 Auer 1 ArrayList import java.util.arraylist; ArrayList buchliste; buchliste = new ArrayList();
Name: Matrikelnr : Aufgabe 1: (ca. 8 Punkte )
Name: Aufgabe 1: (ca. 8 Punkte ) Matrikelnr : In einem Array int a = new int[1000] ; befinden sich 1000 verschiedene Zahlen. Schreiben Sie eine Funktion, die das Array als Parameter übergeben bekommt und
Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
Einstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15
II.4.2 Abstrakte Klassen und Interfaces - 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.2 Abstrakte Klassen und Interfaces - 1
Software-Engineering Software-Management
Software-Engineering Software-Management 12.3 Unit-Tests mit JUnit - Wissen, was der Sourcecode macht! Lösung Prof. Dr. Rolf Dornberger Software-Engineering: 12.3 Unit-Tests mit JUnit 30.04.2006 1 12.3
Ausnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
Prof. 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
Probeklausur Informatik 2 Sommersemester 2013
Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
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
Ü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
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
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 Welche Arten von Anweisungen gibt es? Anweisungen
Vererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
JUnit 4 Tutorial. Wolfgang Stöttinger
JUnit 4 Tutorial Wolfgang Stöttinger JUnit 4 Tutorial... 1 1 Einführung in JUnit 4... 3 1.1 Wie funktioniert JUnit?... 3 1.2 Annotations... 3 1.2.1 Test Annotation... 3 1.2.2 Before Annotation... 3 1.2.3
Einführung in Java, Teil 7
Einführung in Java, Teil 7 (a) Weitere grundlegende Konzepte, und (b) Applikationen Vorlesung Informatik I, 8 & 13.12.2005, Daniel Huson Grundtypen und ihre Wrapper - Klassen Die Grunddatentypen in Java
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
Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
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)
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
OOP Aufgabenblatt November 2013
1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 5 12. November 2013 Aufgabe 1 Betrachten Sie folgende Funktion zur Division von ganzzahligen Werten: /** * Dividiert zwei ganzzahlige Werte und liefert das Ergebnis
Javakurs 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,
Einführung in die Informatik 1
Einführung in die Informatik 1 Prof. Dr. Harald Räcke, R. Palenta, A. Reuss, S. Schulze Frielinghaus 18.04.2017 Wiederholungsklausur Vorname Nachname Matrikelnummer Unterschrift Füllen Sie die oben angegebenen
2. Unterprogramme und Methoden
2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf
Vorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
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
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
Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
Mö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);
Objektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Programmierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
Einführung in das Programmieren Probeklausur Lösungen
Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht
Konstruktor. Grundlagen der Programmierung. Stephan Kleuker 90
Konstruktor Stephan Kleuker 90 Wie erstellt man Objekte mit den bisher erstellten Code kann man genau genommen nichts anfangen, da Klassen nur Rahmen sind zur Erzeugung eines Objektes muss es die Möglichkeit
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
Interface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
15 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.
Einfü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
15 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.
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
Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen
Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels
OOP Aufgabenblatt 7 6. Dezember 2013
1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 7 6. Dezember 2013 Aufgabe 1 Hausaufgabe Nr. 4 (Klein) Implementieren Sie, ohne Arrays oder eine sonstige Kollektion zu nutzen, folgende Fingerübungen zu Rekursion
Test-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 05/03 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel
ÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;
Programmiertechnik Klassenvariablen & Instantiierung
Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen
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
Tag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
Kapitel 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
15 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.