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:
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? 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!
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? 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!