Fehlerbehandlung, Exceptions, Module Flashcards

1
Q

Wozu führt Modularität?

A

Beherrschung von Komplexität

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wieso führt Modularität zur Beherrschung von Komplexität?

A
  • weniger Elemente zu betrachten: Entlastung Kurzeitgedächtnis
  • Zusammengehöriges zusammenfassen: Konsistenz
  • Abhängigkeiten und Details vor allem innerhalb Modul, Entkopplung zwischen Modulen: Veränderungen wirken sich möglichst klein aus und sind absehbar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wann ist ein Zugriff auf ein Modul möglich?

A

Nur wenn expliziz freigegeben, Ändrungen der Klienten ändern das Modul nicht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist das Geheimnisprinzip?

A

Module trennen in Schnittstelle und Implementation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wieso können Klassen mehr als Module?

A
  • definieren Typen mit Exemplaren
  • sind polymorph verwendbar: Methoden überschreiben/überladen
  • haben Vererbungsbeziehungen zueinander: Hierachien
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was kann ein Paket enthalten?

A
  • Klassen
  • Interfaces und
  • Pakete
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was schafft man durch Pakete?

A

Entkopplung durch Kapselung
- Zugriff beschränken
- Namensraum und
- Übersetzungseinheit, sparen von Übersetzungszeit, weil nur das eine Paket übersetzen, nicht das ganze Projekt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist der Namensraum?

A
  • Häufige Namen, wie List oder File können häufiger verwendet werden, da sie durch die Namensnennung der Pakete eindeutig bestimmbar sind
  • Paketname implizit Präfix von Klassen und Interfaces
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist ein vollqualifizierter Name?

A

Paketname.Typname

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was bedeutet Eindeutigkeit im Bezug auf Pakete?

A

Jede Klasse kann nur einem Paket zugehörig sein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Für was ist etwas ohne Modifier sichtbar?

A

Nur für innerhalb des Pakets

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie wird ein Paket deklariert?

A

am Anfang einer Übersetzungseinheit: package paketname;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wozu gehören Dateien ohne explizite Deklaration?

A

Zu einem Default-Package

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was bildet die Export-Schnittstelle eines Pakets?

A

alles als public deklarierte

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wozu wurden native Module eingeführt?

A

Um die Sichtbarkeit besser explizit zu steuern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche Vorteile haben native Module?

A
  • Prüfung durch Compiler: Konfiguration gültig, Sichtbarkeit realisiert, Zyklenfreiheit
  • Aussagekräftige Fehlermeldungen
  • Java API besser skalierbar: ausblenden wenn nicht benötigt - Werkzeug jlink hilft
17
Q

Von wie vielen Module darf ein Paket exportiert werden?

A

Nur von enem Modul

18
Q

Welche Regeln gibt es für native Module?

A
  • Jedes Paket darf nur von einem Modul exportiert werden
  • Zyklische Abhängigkeiten zwischen Modulen sind verboten
19
Q

Wie exportiert man ein package zu einem anderen Modul?

20
Q

Für wen ist Kundennummer sichtbar?

21
Q

Für wen ist Kundennummer sichtbar?

A

Für alle Klassen im selben Modul

22
Q

Für wen ist Kundennummer sichtbar?

A

Für alle Klassen im selben Modul

23
Q

Für wen ist Kundennummer sichtbar?

A

Für alle Klassen im selben Modul und im Modul se3

24
Q

Was sind Entwicklungsfehler?

A

von Entwicklern gemacht

25
Was sind Umgebungsfehler?
treten in Umgebungen der Ausführung auf
26
Was sind die drei Oberklassen der Exception Hierarchie? Welche Verzweigung haben sie?
27
Was tut das Schlüsselwort throw?
Auslösen einer Exception
28
Was tut das Schlüsselwort try?
Block, in dem mit dem Auftreten einer Exception gerechnet wird
29
Was tut das Schlüsselwort catch?
Block zur Behandlung einer aufgetretene Exception - Exception-Handler
30
Was tut finally?
Block zum geordneten Abschließen - wird immer ausgeführt, wenn der try-Block betreten wurde - auch wenn try-Block eine Exception zum vorzeitigen Beenden geführt hat und ein catch-Block ausgeführt wurde - optional, aber empfohlen
31
Was tut das Schlüsselwort throws?
Deklarieren einer (geprüften) Exception an der Operationsschnittstelle
32
Was geschiet, wenn kein passende catch-Block gefunden wird?
zur aufrufenden Methode zurückspringen und dort Fehlerbehandlung durchführen - Ausnahme wird so weiterpropagiert und durchläuft die Methoden-Aufrufkette, bis sie abgefangen wird - Kein Abfangen bis zur main-Methode: Fehlermeldung, Abbruch
33
Wann wird ein catch-Block ausgeführt?
passend zu Exception, wenn Typ der erzeugten Exception gleich oder ein Subtyp ist
34
Was sind geprüfte Exceptions?
Methode deklariert Exception in ihrem Kopf (Schlüsselwort throws), dass sie diese Exception im Bedarfsfall auslösen wird - Compiler prüft, ob Behandlung vorhanden: Versäumnisse vermeiden - für vorhersehbare Fehler eingesetzt, also primär für Umgebungsfehler
35
Was sind ungeprüfte Exceptions?
Wird nicht deklariert - primär für Entwicklungsfehler benutzt, da praktisch jederzeit auftretend, ihre Deklarationen würden den Quelltext überschwemmen.
36
Worauf bezieht sich geprüft und ungeprüft bei Exceptions?
bezieht sich auf die Übersetzungszeit zur Laufzeit werden sie immer behandelt durch die VM