Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Man würde nie so über einer iterator laufen, oder?
Denn dafür gibt es weitaus bessere Möglichkeiten.
Zurück zum Original Beispiel, mit etwas "Fleisch auf den Knochen":
Code:
try {
if (i == 0 )
throw new Exception( "i darf nicht null sein!" );
....
} catch(Exception e) {
// ...und nun folgt eine Total unsinnige Fehlerbehandlung...
}
Falls i ein Parameter einer Methode war der nicht 0 sein darf, sollte er das dem Aufrufer folgendermassen klar machen:
Code:
if (i==0)
throw new NullpointerException("i darf nicht null sein!");
Selber Exceptions in einem try block werfen die dann im folgenden catch Block verarbeitet werden ist echt schräg
Wenn man die Exceptions zur Programmsteuerung nutzt, ist das wohl wirklich nicht so gut - schon aus Performancegründen, denn die Verarbeitung einer Exception ist sicher "teurer" als eine normale Fallunterscheidung. Trotzdem würde ich es nicht pauschal ablehnen, in einem try-Block Exceptions zu werfen.
Wenn ich zum Beispiel eine XML-Datei einlese und darin bestimmte Einträge suche, dann können da ja verschiedene Fehler auftreten: IO-Fehler (Datei nicht gefunden oder nicht lesbar), Parse-Fehler (XML-Datei nicht well-formed) oder logische Fehler (gesuchte Einträge nicht gefunden). Für den weiteren Programmfluss ist es egal, welche dieser Fehlermeldungen aufgetreten ist, daher würde ich sie gemeinsam behandeln:
Code:
try {
File f = ...
Document dom = ... // hier können IO- oder Parse-Fehler auftreten
String tagName = ...
Element elem = ...
if ( elem == null) throw new Exception( "Element " + tagName + " in der Datei " + f.getAbsolutePath() + " nicht gefunden");
...
} catch ( Exception e) {
//-- gemeinsame Fehlerbehandlung
...
}