Javascript-Tricks
Tipps & Tricks

DeveloperIT-ProjekteSoftware

Labels, break und continue

Javascript-Tricks

Innerhalb von Schleifen können mehrere zusätzliche Anweisungen verwendet werden, die sonst nicht verwendet werden dürfen. Dazu gehören Labels, break und continue.

Labels sind selbst definierte Stellen innerhalb einer Schleife. Sie dienen dazu, im Zusammenhang mit break und continue den Ablauf einer Schleife zu steuern. Ein Label wird dabei durch einen selbst gewählten Namen sowie einen anschließenden Doppelpunkt definiert. Labels, die von einer break-Anweisung aus angesteuert werden sollen, können hinter dem Doppelpunkt jede Art von Anweisungen erhalten. Labels, die von einer continue-Anweisung aus angesteuert werden sollen, können hinter dem Doppelpunkt nur Schleifen als Anweisungen erhalten. Beispiel:


while(a==b)
{
meineMarke:
/* ... Anweisungen ... */
}
break

Die break-Anweisung beendet die aktuelle Schleife, ohne sie bis zum Ende auszuführen. Zusätzlich kann hinter der break-Anweisung der Name eines Labels notiert werden. Dieses Label bezeichnet dann die Schleife, die beendet werden soll. Dabei können nur Label verwendet werden, die zur aktuellen Schleife gehören. Beispiel:


a = 0;
Marke1: while(a < 10)
{
b = 0;
while(b < 10)
{
if(b>5){break Marke1;}
b++;
}
a++;
}
alert(a);

Es gibt hierbei zwei Schleifen. Für die break-Anweisung sind beide als aktuell einzustufen, da beide während der Laufzeit der break-Anweisung tätig sind. Durch das angegebene Label wird bewirkt, dass die mit diesem Label gekennzeichnete Schleife beendet wird. Beide Schleifen enden somit beim Eintreffen der break-Anweisung.

Die continue-Anweisung funktioniert ähnlich der break-Anweisung. Der Unterschied ist, dass sie lediglich den aktuellen Durchlauf der Schleife beendet und nicht die gesamte Schleife. Alle Anweisungen die hinter oder nach dieser Anweisung folgen, werden dann nicht ausgeführt.

Führt dieses Label zu einer while– oder do-while-Schleife, so überprüft diese ihre Bedingung und führt die Schleife erneut aus, wenn die Bedingung true ist. Führt das Label zu einer for-Schleife, wird deren Zähler erhöht und die Schleife weiter ausgeführt, wenn die Bedingung true ist. Führt das Label zu einer for-in-Schleife, so springt diese zur nächsten Eigenschaft und führt die Schleife erneut aus:


c = '';
Marke1:
for(a=0 ; a<=9 ; a++)
{for(b=0 ; b<=9 ; b++){
if(a == 3){continue Marke1;}
c += a+''+b+' | ';
}
c += '
'
}
document.writeln
('

'+c+'

');

Das Beispiel erstellt eine Art Tabelle der Zahlen von 00 bis 99. Durch die Verwendung der continue-Anweisung sowie eines Labels wird der dritte Durchlauf der Schleife beendet, bevor die Variable c neu geschrieben werden kann. Dadurch ergibt sich das Fehlen der Zahlen 30 bis 39.

Fehler abfangen und auslösen

Javascript-Tricks

Eine try-catch-finally-Anweisung dient dazu, mögliche Fehler abzufangen, ohne dass eine Meldung ausgelöst wird. Dazu wird um die betreffende/n Anweisungen die try-Anweisung gesetzt. Sie besteht aus dem Wort try sowie zwei geschweiften Klammern, welche die Anweisungen einschließen. Tritt innerhalb dieser try-Anweisung ein Fehler auf, wird die gesamte Folge abgebrochen und nach der Anweisung fortgefahren, ohne eine Fehlermeldung auszugeben.

Zusätzlich kann noch eine catch-Anweisung folgen. Sie wird nur dann ausgeführt, wenn in der vorhergehenden try-Anweisung ein Fehler auftrat. Eingeleitet wird sie durch das Wort catch, welchem zwei runde Klammern und anschließend zwei geschweifte Klammern folgen. Innerhalb der runden Klammern ist Folgendes möglich:

– Es wird eine beliebige Variable notiert, der bei Eintritt eines Fehlers der Fehler übergeben wird.
– Es wird eine beliebige Variable notiert sowie das Wort if und eine Bedingung. Tritt ein Fehler ein, wird der Variablen nur dann der Fehler übergeben, wenn die Bedingung erfüllt ist.

Schließlich kann noch eine finally-Anweisung folgen. Sie wird durch das Wort finally sowie zwei geschweiften Klammern notiert. Innerhalb der Klammern können alle Anweisungen stehen, die bedingungslos ausgeführt werden können, nachdem die Behandlung aller Fehler abgeschlossen ist. Diese Anweisungen werden auf jeden Fall ausgeführt, ob nun ein Fehler aufgetreten ist oder nicht:


try
{LoestEinenFehlerAus();}
catch(a if a instanceof TypeError)
{alert('Ein Type-Fehler!');}
catch(a)
{alert('Kein Type-Fehler!');}
finally
{alert('Abgeschlossen');}

Innerhalb der try-Anweisung wird ein Fehler ausgelöst, weil eine nicht existierende Funktion aufgerufen wird. Da es sich dabei um einen Type-Error handelt, wird die erste catch-Anweisung ausgeführt und die zweite nicht. Zum Schluss wird noch die finally-Anweisung verarbeitet.

Die throw-Anweisung löst einen Fehler aus. Sie dient dazu, selbst Fehlerkontrolle in Skripts zu betreiben und kann deshalb nur innerhalb einer try-Anweisung verwendet werden. Die Anweisung besteht aus dem Wort throw und einer anschließenden Fehlerbezeichnung:


a = 2;
try {
if(a < 3){ throw 'a ist zu klein.';}
if(a > 10){ throw 'a ist zu groß.';}
}
catch(b)
{alert('Fehler "'+b+'".')}

Innerhalb einer try-Anweisung wird bei bestimmten Bedingungen ein Fehler ausgelöst. Ist die Variable a kleiner als 3, wird der Fehler mit dem Wert “Variable a ist zu klein.” ausgelöst; ist sie größer als 10, mit dem Fehler “Variable a ist zu groß.” Innerhalb der catch-Anweisung wird dieser dann abgefangen und in einem Satz ausgegeben.

Lesen Sie auch :