Goto-Statement in Java?

Hallo,

ich habe ein verzwicktes Problem wie ich finde^^

Also:

//Kunde geht in die Warteschlange


 try{
 Warteschlange warteschlangeTest = this.kuerzesteSchlangeFinden();
 }
 catch (NullPointerException NPE2)
 {
**//Wenn die Exception ausgelöst wird soll es im Abschnitt "Kasse arbeitet" weitergehen**
 }

 {

 if(warteschlangeTest.getAnzahl() \> 1)
 {
 this.logbuch.neuerEintrag(dat+": Der Kunde stellt sich in die "+(warteschlangeTest.getüberAbfertigung().getIndexImSupermarkt()+1) +". Warteschlange. Vor ihm sind "+warteschlangeTest.getAnzahl()+" andere Kunden");
 }
 else if (warteschlangeTest.getAnzahl() ==1)
 {
 this.logbuch.neuerEintrag(dat+": Der Kunde stellt sich in die "+(warteschlangeTest.getüberAbfertigung().getIndexImSupermarkt()+1) +". Warteschlange. Vor ihm ist "+warteschlangeTest.getAnzahl()+" anderer Kunde");
 }
 else
 {
 this.logbuch.neuerEintrag(dat+": Der Kunde stellt sich in die "+(warteschlangeTest.getüberAbfertigung().getIndexImSupermarkt()+1) +". Warteschlange. Vor ihm sind keine anderen Kunden");
 }

 warteschlangeTest.kundeHinzu(k);



 }

**//Kasse arbeitet**


 int i = 0;
 for (int forint=0; forint!= this.anzahlDerAbfertigungen; forint++)
 {if(this.supermarkt.get(i).getKs().getAktuellerKunde() != null)
 {
 this.logbuch.neuerEintrag(dat+": Die Kasse Nr. "+ (this.supermarkt.get(i).getIndexImSupermarkt()+1) +" arbeitet an einem Kunden weiter. Sie hat noch " + warteschlangeTest.getüberAbfertigung().getKs().getAktuellerKunde().getAnzahlDerWaren() + " Waren abzuarbeiten.");
 }
 else
 {
 this.logbuch.neuerEintrag(dat+": Die Kasse Nr. "+ (this.supermarkt.get(i).getIndexImSupermarkt()+1) +" übernimmt einen neuen Kunden mit " + warteschlangeTest.getüberAbfertigung().getKs().getAktuellerKunde().getAnzahlDerWaren() + " Waren.");
 }
 }
 }

Wie kann ich das realisieren? Gibt es so etwas wie ein Goto-Statement in Java? Ich habe gelesen, sowas gäbe es nicht.
Aber wie kann man das sonst umsetzen?

Hallo,

Eine NPE abzufangen und zu ignorieren, halte ich fuer sehr zweifelhaft.
Unter Umstaenden ist this null oder warteschlangeTest ist null.
Auf beide greifst du im Abschnitt „Kasse arbeitet“ wieder zu.
Besser du achtest darauf, dass deine Objekte in einem definierten
Zustand sind.

Entweder du sicherst den Block selbst:

try {
 ws = this.getWs();
} catch (E) {
}

if (warteschlangeTest != null) {
 if(warteschlangeTest.getAnzahl() \> 1) ...
}

// Kasse arbeitet

oder du bedienst dich einer Hilfsvariablen vom Typ boolean.

Gruss
Patrick

Warum verlängerst du den try-Block nicht einfach bis „//Kasse arbeitet“?

Ich schließe mich ab, dass wenn eine NullPointerException ausgelöst wurde, dass das ein Problem darstellt. Wenn du irgendwo mit Null-Werten arbeitest, solltest du die genau an der Stellt mit „==null“ überprüfen. Ein generelles Abfangen der Null-Pointer-Ausnahmen fängt auch Ausnahmen von anderen Stellen, wo die wirklich auf ein Problem hinweisen und die würdest du dann einfach ignorieren.