Erste Schritte Exceptions nicht verstanden

chaoshoney

Mitglied
Hallihallo :) Ich versuche mir gerade Exceptions beizubringen, leider aber eher mit mäßigem Erfolg. Ich bin auf Code gestoßen, den ich hier mal ganz abgespackt aufschreibe:

Code:
private String getXmlFromThere(String string) throws IOException{
    String urlString = ...;

    try{
          ...
   }
   catch(MalformedURLException unrecoverable){
        
         throw new AssertError(unrecoverable);
   }
}

Und ich sehe hier leider ganz und gar nicht durch. :(
1) Eine IOException ist ja eine sogenannte checked exception und wird deswegen standardmäßig mit throws deklariert. Soweit okay, aber was passiert mit der IOException, wenn diese tatsächliche auftritt? Wird sie einfach allein durch das throws abgefangen oder wird sie weitergereicht an andere Klassen oder was passiert genau? :(

2) Okay, im try-catch-Block wollen wir verhindern, dass eine MalformedURLException unser Programm zerschießt. Wenn nun aber eine auftritt, dann werfen wir plötzlich eine neue Exception? Und die erzeugen wir?! Aber warum erzeuge ich eine neue Exception, wenn ich gerade eine abgefangen habe und was hat denn plötzlich ein AssertError mit einer MalformedURLException zu tun, woher weiß ich, dass ich die werfen will UND warum übergeben wir die MalformedURLException als Paramerter an AssertError? o_O UND wo wird denn dann mein AssertError abgefangen???

Tut mir leid, dass diese Fragewucht hier so geballt kommt, aber ich bin ziemlich verwirrt und leicht verzweifelt, was den Code betrifft. :(

Ich würde mich sehr über Erklärungen freuen!
 

AndyJ

Bekanntes Mitglied
1. Die IOException wird weitergereicht an den Caller.
2. Dein Code wirft eventuell eine MalformedURLException, die aufgefangen wird und durch einen (wesentlich schwerwiegenderen Error ersetzt wird).

Lezteres ist sicherlich nicht so wie es gemacht werden sollte.
Eine checked exception wirft man ja, damit der Caller etwas unternehmen kann um den Fehler zu korrigieren. Ein Error wird normalerweise nur von der JVM geworfen, in Faellen wo ein Recovery nicht moeglich ist.
Wenn man eine Exception mit einer anderen ersetzt, nennt man das Exception chaining:
Code:
try {
  obj.doSomething(args);
} catch (LowLevelException cause) {
  // translate
  throw new HigherLevelException(cause);
}

Der Sinn ist, dem jeweils aufrufenden Teil (dem Caller) einen vernuenftigen Hinweis zu geben, was zu tun ist um den Fehler zu vermeiden. Ein Beispiel:

Code:
try {
  String[] fileContent = readFile(String fileName);  
} catch (FileNotFoundException cause) {
  // translate
  throw new IllegalArgumentException("Die Datei kann nicht gelesen werden, weil die Datei nicht existiert", cause);
}

Obige Exception sagt dem Caller, dass die Datei nicht existiert und es ist eine IllegalArgumentException, weil der fileName z.B. eine Nutzereingabe ist.

Cheers,
Andy
 

mrBrown

Super-Moderator
Mitarbeiter
2. Dein Code wirft eventuell eine MalformedURLException, die aufgefangen wird und durch einen (wesentlich schwerwiegenderen Error ersetzt wird).

Lezteres ist sicherlich nicht so wie es gemacht werden sollte.
Eine checked exception wirft man ja, damit der Caller etwas unternehmen kann um den Fehler zu korrigieren. Ein Error wird normalerweise nur von der JVM geworfen, in Faellen wo ein Recovery nicht moeglich ist.

Der Sinn ist, dem jeweils aufrufenden Teil (dem Caller) einen vernuenftigen Hinweis zu geben, was zu tun ist um den Fehler zu vermeiden. Ein Beispiel:

AssertError gibt es so gar nicht, vllt ist das nur dumme Benennung for RTE ;)

Und ohne zu wissen, wodurch die Eingabe der Methode zustande kommt, kann ein AssertionError durchaus passend sein. Kann ja durchaus zum Laden von einer in der jar liegenden Config-Datei genutzt werden, das ist dann offensichlich 'n schwerwiegender Programmierfehler...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
G Exceptions - spiegeln wir da nicht einen Spiegel im Spiegel? Java Basics - Anfänger-Themen 10
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
C Exceptions identifizieren Java Basics - Anfänger-Themen 5
A Exceptions mit objektreferenzen Java Basics - Anfänger-Themen 4
A Exceptions und methods Java Basics - Anfänger-Themen 2
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
A Exceptions und Packages Java Basics - Anfänger-Themen 6
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
X Exceptions Benutzereingaben Java Basics - Anfänger-Themen 4
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
L Exceptions und Konten Java Basics - Anfänger-Themen 21
D Frage zu Exceptions Java Basics - Anfänger-Themen 8
I Wie programmiert man Exceptions? Java Basics - Anfänger-Themen 4
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
T Exceptions - ausgeführte Zeilen Java Basics - Anfänger-Themen 4
J Exceptions Java Basics - Anfänger-Themen 69
C Exceptions Java Basics - Anfänger-Themen 8
C Exceptions Java Basics - Anfänger-Themen 6
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
F Exceptions Java Basics - Anfänger-Themen 6
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
N Compiler-Fehler Drei Exceptions in GUIHack für Dreiecke auf MoveButtons Java Basics - Anfänger-Themen 36
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
S Exceptions Java Basics - Anfänger-Themen 7
M Vererbung Problem Vererbung/Exceptions Java Basics - Anfänger-Themen 9
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
J Eclipse Exceptions Java Basics - Anfänger-Themen 2
K Schleifen und Exceptions Java Basics - Anfänger-Themen 8
K Exceptions auslagern Java Basics - Anfänger-Themen 15
R NullPointer Exceptions Java Basics - Anfänger-Themen 3
F Erste Schritte Übung zu Exceptions Java Basics - Anfänger-Themen 24
R Exceptions (try/catch) Java Basics - Anfänger-Themen 63
H Int Exceptions Java Basics - Anfänger-Themen 12
M Exceptions per throws oder try Java Basics - Anfänger-Themen 4
M Compiler-Fehler Queue als ArrayList mit Exceptions Java Basics - Anfänger-Themen 3
T Exceptions in einer Klasse Java Basics - Anfänger-Themen 3
B Eigene Exceptions entwerfen Java Basics - Anfänger-Themen 3
H Methoden Überflüssige Exceptions Java Basics - Anfänger-Themen 20
C Exceptions Java Basics - Anfänger-Themen 14
1 While Schleife Exceptions Java Basics - Anfänger-Themen 6
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
D Frage zu Exceptions Java Basics - Anfänger-Themen 12
M Compiler-Fehler Exceptions lieber throwen oder direkt catchen? Java Basics - Anfänger-Themen 8
T Exceptions Java Basics - Anfänger-Themen 19
B Wie finde ich Exceptions? Java Basics - Anfänger-Themen 19
Dit_ Input/Output Alle Exceptions protokollieren Java Basics - Anfänger-Themen 9
T Exceptions Java Basics - Anfänger-Themen 12
J Standard Exceptions abfangen Java Basics - Anfänger-Themen 5
F Exceptions werfen oder catchen?? Java Basics - Anfänger-Themen 14
D Exceptions - Ausnahmebehandlung Java Basics - Anfänger-Themen 19
D Frage zu Exceptions und der import Anweisung Java Basics - Anfänger-Themen 12
J Paar Fragen zu Exceptions Java Basics - Anfänger-Themen 16
G Verständnisproblem: Exceptions Java Basics - Anfänger-Themen 17
S Exceptions bei push/pop in Stack Java Basics - Anfänger-Themen 8
C Exceptions beim Beenden Java Basics - Anfänger-Themen 2
C TimerTask und Exceptions Java Basics - Anfänger-Themen 5
E Klasse öffnen, mehrere Exceptions Java Basics - Anfänger-Themen 9
C Exceptions Java Basics - Anfänger-Themen 7
G 2 Exceptions in einer Methode Java Basics - Anfänger-Themen 3
firefexx Exceptions werfen Java Basics - Anfänger-Themen 5
0 Exceptions mehrfach fangbar? Java Basics - Anfänger-Themen 4
O Exceptions Java Basics - Anfänger-Themen 3
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
H Diverse Exceptions - Troubleshooting Java Basics - Anfänger-Themen 3
J exceptions Java Basics - Anfänger-Themen 8
sc0p InterruptedExceptions und Exceptions - in Einem! Java Basics - Anfänger-Themen 5
M Frage zu Exceptions Java Basics - Anfänger-Themen 19
M Fragen zu Exceptions Java Basics - Anfänger-Themen 3
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
D Exceptions werfen + beenden Java Basics - Anfänger-Themen 12
M Exceptions aus interface-Methoden Java Basics - Anfänger-Themen 2
S File.renameTo und Exceptions / Fehlermeldung Java Basics - Anfänger-Themen 2
B Exceptions in Liste sammeln? Java Basics - Anfänger-Themen 5
O Eigene Exceptions Java Basics - Anfänger-Themen 11
O "restliche" Exceptions fangen Java Basics - Anfänger-Themen 8
H [Stil] Exceptions in der Klasse behandeln oder throwen? Java Basics - Anfänger-Themen 62
T Problem beim Werfen und Fangen von Exceptions Java Basics - Anfänger-Themen 2
V Aktivitätsdiagramm / Exceptions Java Basics - Anfänger-Themen 5
V Exceptions Java Basics - Anfänger-Themen 6
K Frage zu Exceptions -> Logging Java Basics - Anfänger-Themen 6
M Eigene Fehlermeldung bei Exceptions? Java Basics - Anfänger-Themen 12
R JDom Exceptions Java Basics - Anfänger-Themen 4
R Datei einlesen mit Exceptions Java Basics - Anfänger-Themen 2
Daniel_L Verwendung von try und catch bei exceptions Java Basics - Anfänger-Themen 7
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
G Verschiedene Exceptions zu gleichem Block Java Basics - Anfänger-Themen 6
U Frage zu Exceptions Java Basics - Anfänger-Themen 5
mwildam Philosophiefrage zu Exceptions und Rückgabewerten Java Basics - Anfänger-Themen 6
D Static, final Objekte mit Exceptions im Konstruktor Java Basics - Anfänger-Themen 2
G Exceptions Java Basics - Anfänger-Themen 4
G ServerSocket: Exceptions und Timeout Probleme Java Basics - Anfänger-Themen 10
M Exceptions bei Textfeldern abfangen Java Basics - Anfänger-Themen 2
P Problem mit exceptions Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben