Seite 1 von 1

Kontrollfragen

Verfasst: 4. Sep 2012 22:48
von combs
hallo,

kann jemand konkret mir sagen , wann eine Eception stattgefangen, weitergereicht werden kann??

Was sind eigentlicht Runtime Eception..??


Eine andere Frage....wenn ich z.B als Objekt combs vom Typ Hashmap. wenn ich das mit dem iterator durchlaufen möchte..als z.B Iterator<string, int> it = combs.iterator ; it.hasNext :
was ist der Typ von "it" danach??....kann ich z.B irgendwo schreiben if(it.next().getGröße() <100) oder if(it.next().getname()<name)..??

ich freue mich auf eine Antwort

gruß, combs.

Re: Kontrollfragen

Verfasst: 5. Sep 2012 10:24
von mmec
Hallo,
combs hat geschrieben: kann jemand konkret mir sagen , wann eine Eception stattgefangen, weitergereicht werden kann??
Wenn du für die Methode bei der eine Exception auftreten kann angibst dass dort eine Exception geworfen werden kann. Die aufrufende Methode muss dann selbst die Exception weitergeben oder einen try, catch Block verwenden. Ansonsten bekommst du vom Compiler eine Fehlermeldung dass eine mögliche Exception nicht gehandhabt wird.

Code: Alles auswählen

[Modifikator] Typ Methode() throws Exception
{
  // Anweisungen
}
Quelle
combs hat geschrieben: Was sind eigentlicht Runtime Eception..??
Das ist eine Exception die auftritt wenn du irgendwas ausführst was keinen Sinn ergibt, wenn du z.B. das -1 te Element von einem Array benutzen möchtest wird diese Exception glaub ich geworfen.
Eine Runtime Exception muss nicht, kann aber glaub ich, gefangen werden. Du musst auch nicht bei einer Methode ankündigen das eine solche Exception geworfen werden kann.
combs hat geschrieben: Eine andere Frage....wenn ich z.B als Objekt combs vom Typ Hashmap. wenn ich das mit dem iterator durchlaufen möchte..als z.B Iterator<string, int> it = combs.iterator ; it.hasNext :
was ist der Typ von "it" danach??....kann ich z.B irgendwo schreiben if(it.next().getGröße() <100) oder if(it.next().getname()<name)..??
Du deklarierst it ja als Iterator. it.next() sollte dir dann ein Objekt vom Datentyp <string, int> zurückgeben. Wenn du dir in der Java API die Klasse HashMap anschaust siehst du dass sie nicht das Interace Iterable implementiert, also nehme ich an dass es nicht möglich ist direkt über eine HashMap zu iterieren. Jedoch gibt es zwei Methoden die dir jeweils ein Set zurückgeben und das Interface Set implementiert Iterable.
Mehr zum iterieren über HashMaps gibt es hier oder bei google.

Grüße, Johannes

Re: Kontrollfragen

Verfasst: 5. Sep 2012 13:47
von snoo
Allgemein bedeutet "Runtime" einfach, dass etwas erst während des Programmflusses geschieht. So wie Runtime Error Fehler sind, die nicht vom Compiler erkannt wurden, sondern erst zur Laufzeit entstanden sind (z.B. Variable durch die ständig geteilt wird und während der Laufzeit irgendwann den Wert 0 erhält.)

Re: Kontrollfragen

Verfasst: 5. Sep 2012 18:49
von Daniel S.
Exceptions treten immer zur Laufzeit auf! Eine runtime exception ist eigentlich eine so genannte unchecked exception, im Unterschied zur checked exception, siehe: http://docs.oracle.com/javase/tutorial/ ... ntime.html. Also es ist so wie mmec sagt, die unchecked exceptions müssen bei einer Methodendefinition nicht angekündigt werden (dass sie auftreten können).

Re: Kontrollfragen

Verfasst: 5. Sep 2012 22:50
von snoo
Stimmt! Wieder etwas gelernt, danke.