Exceptions erklärt

Kirby.exe

Top Contributor
Also ich habe die folgende Aufgabe als Übung gemacht und meine Ergebnisse waren auch richtig, jedoch verstehe ich nicht weshalb xD

Die Ergebnisse sind:
a) E
b) H
c) I

Warum kann die Exception nicht auch mit MeinSchlimmerFehler gefangen werden? Es ist ja eine Subklasse von MeinFehler und müsste somit ja eigentlich noch mehr Funktionalität besitzen ?

Bildschirmfoto 2020-02-24 um 09.38.41.png
 

mrBrown

Super-Moderator
Mitarbeiter
Warum kann die Exception nicht auch mit MeinSchlimmerFehler gefangen werden? Es ist ja eine Subklasse von MeinFehler und müsste somit ja eigentlich noch mehr Funktionalität besitzen
Genau das ist der Grund, warum sie mit MeinSchlimmerFehler nicht gefangen wird :)

Mal ein etwas handlicheres Beispiel: MeinFehler ist ein Auto und MeinSchlimmerFehler ist ein SUV. Wenn die Polizei Autos anhalten soll, kann sie natürlich auch SUVs anhalten, wenn sie aber nur SUVs anhalten soll, macht es wenig Sinn, auch einen Smart anzuhalten :)
 

Kirby.exe

Top Contributor
Genau das ist der Grund, warum sie mit MeinSchlimmerFehler nicht gefangen wird :)

Mal ein etwas handlicheres Beispiel: MeinFehler ist ein Auto und MeinSchlimmerFehler ist ein SUV. Wenn die Polizei Autos anhalten soll, kann sie natürlich auch SUVs anhalten, wenn sie aber nur SUVs anhalten soll, macht es wenig Sinn, auch einen Smart anzuhalten :)
Ahh ok also wenn throws MeinFehler dann wird diese Exception entweder von einem try catch mit der Exception oder einer Superklasse dieser Exception gecatched?
 

LimDul

Top Contributor
Ansonsten überleg dir mal folgendes:

Java:
public class SubKlasseA extends Oberklasse {}

public class SubSubKlasseB extends SubKlasse A {}

Welche Zuweisungen sind erlaubt?

Java:
SubKlasseA a = new SubSubKlasseB(); // Geht
SubSubKlasseB b = new SubKlasseA(); // Geht nicht

Wenn nun mittels catch (MeinSchlimmerFehler e) eine Exception vom Typ MeinFehler fangen würdest, würdest du damit der Variable e ein Objekt vom Typ MeinFehler zuweisen - was eben nicht geht, denn nicht jedes Objekt vom Typ MeinFehler ist auch vom Typ MeinSchlimmerFehler.
 

Kirby.exe

Top Contributor
Ansonsten überleg dir mal folgendes:

Java:
public class SubKlasseA extends Oberklasse {}

public class SubSubKlasseB extends SubKlasse A {}

Welche Zuweisungen sind erlaubt?

Java:
SubKlasseA a = new SubSubKlasseB(); // Geht
SubSubKlasseB b = new SubKlasseA(); // Geht nicht

Wenn nun mittels catch (MeinSchlimmerFehler e) eine Exception vom Typ MeinFehler fangen würdest, würdest du damit der Variable e ein Objekt vom Typ MeinFehler zuweisen - was eben nicht geht, denn nicht jedes Objekt vom Typ MeinFehler ist auch vom Typ MeinSchlimmerFehler.
Ich glaube ich hatte mich selber etwas verwirrt XD
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
W Exceptions behandeln Allgemeine Java-Themen 16
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
J Exceptions Allgemeine Java-Themen 1
Z Java Exceptions - Auf leeres Feld prüfen Allgemeine Java-Themen 10
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
L Nullpointer Exceptions werden nicht angezeigt Allgemeine Java-Themen 5
V Exceptions Allgemeine Java-Themen 2
G Exceptions mit jre 7u40 Allgemeine Java-Themen 2
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
E LookAndFeel Exceptions bei UIManager.setLookAndFeel Allgemeine Java-Themen 4
W JavaDoc Runtime-Exceptions: Wie sinnvoll anzeigen? Allgemeine Java-Themen 14
C Threads und Exceptions Allgemeine Java-Themen 7
B Webstart Exceptions Allgemeine Java-Themen 7
R Threads Exceptions von Threads abfangen im ThreadPool Allgemeine Java-Themen 5
S Runtime Exceptions in eine Datei schreiben Allgemeine Java-Themen 7
G Internationalisierung von Exceptions Allgemeine Java-Themen 5
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
F Alle Exceptions abfangen Allgemeine Java-Themen 4
B Alle Exceptions auf einmal abfangen Allgemeine Java-Themen 4
G log4j - Behandlung nicht explizit abgefangener Exceptions Allgemeine Java-Themen 5
B Logging von Exceptions Allgemeine Java-Themen 7
G Designfrage: Exceptions in Konstruktoren Allgemeine Java-Themen 7
I Exceptions - weder catch- noch finally-Klausel funktioniert Allgemeine Java-Themen 12
M Verwendung von unchecked exceptions & bereits vorhandenen exceptions was priorisieren Allgemeine Java-Themen 3
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
H Exceptions und IO Allgemeine Java-Themen 17
B Exceptions? Allgemeine Java-Themen 4
D Throws Exceptions Allgemeine Java-Themen 14
M Verständnisfrage Exceptions Allgemeine Java-Themen 2
V Exceptions als Fehlerbehandlung "missbrauchen"? Allgemeine Java-Themen 10
DEvent Wie behandelt man Exceptions in Iterator? Allgemeine Java-Themen 2
J Verständnisfrage zu exceptions Allgemeine Java-Themen 3
A Junit Exceptions testen Allgemeine Java-Themen 3
R Loading-Thread und Exceptions abfangen. Allgemeine Java-Themen 4
P Exceptions dokumentieren. Allgemeine Java-Themen 6
G Exceptions weiterwerfen Allgemeine Java-Themen 2
T Generics und Exceptions Allgemeine Java-Themen 6
P Exceptions throw Allgemeine Java-Themen 6
F Wann und wie Exceptions einsetzen? Allgemeine Java-Themen 13
J Method.invoke -> Exceptions der Funktion abfangen Allgemeine Java-Themen 5
T Frage zu Exceptions Allgemeine Java-Themen 3
G Java-Exceptions werden nicht ganz angezeigt. Wo ändern? Allgemeine Java-Themen 3
J Probleme mit Exceptions Allgemeine Java-Themen 11
R Exceptions mit aktuellen Programminformationen ausgeben? Allgemeine Java-Themen 2
märliprinz com.sap.dbtech.jdbc.exceptions.JDBCDriverException Allgemeine Java-Themen 2
G Alle Exceptions loggen Allgemeine Java-Themen 4
G Frage zu Exceptions Allgemeine Java-Themen 6
M err oder alle Exceptions eines Programms abfangen Allgemeine Java-Themen 4
G Exceptions ohne Zeilennummer (Unknown Source) Allgemeine Java-Themen 8
T Exceptions im statischem Klassencode Allgemeine Java-Themen 5
D Java GitHub for Dummies erklärt Allgemeine Java-Themen 31

Ähnliche Java Themen


Oben