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?

A
20
Q

Für wen ist Kundennummer sichtbar?

A

Für Alle

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
Q

Was sind Umgebungsfehler?

A

treten in Umgebungen der Ausführung auf

26
Q

Was sind die drei Oberklassen der Exception Hierarchie? Welche Verzweigung haben sie?

A
27
Q

Was tut das Schlüsselwort throw?

A

Auslösen einer Exception

28
Q

Was tut das Schlüsselwort try?

A

Block, in dem mit dem Auftreten einer Exception gerechnet wird

29
Q

Was tut das Schlüsselwort catch?

A

Block zur Behandlung einer aufgetretene Exception
- Exception-Handler

30
Q

Was tut finally?

A

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
Q

Was tut das Schlüsselwort throws?

A

Deklarieren einer (geprüften) Exception an der
Operationsschnittstelle

32
Q

Was geschiet, wenn kein passende catch-Block gefunden wird?

A

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
Q

Wann wird ein catch-Block ausgeführt?

A

passend zu Exception, wenn Typ der
erzeugten Exception gleich oder ein Subtyp ist

34
Q

Was sind geprüfte Exceptions?

A

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
Q

Was sind ungeprüfte Exceptions?

A

Wird nicht deklariert
- primär für Entwicklungsfehler benutzt, da praktisch jederzeit auftretend, ihre Deklarationen würden den Quelltext überschwemmen.

36
Q

Worauf bezieht sich geprüft und ungeprüft bei Exceptions?

A

bezieht sich auf die Übersetzungszeit
zur Laufzeit werden sie immer behandelt durch die VM