JavaScript Fehlerbehandlung

Hallo zusammen,

in php kann man vor manche funktionen ein @ setzen das heißt dann soviel wie wenn ein fehler passiert mach einfach weiter.

gibt es sowas oder sowas ähnliches auch für java script?

Problem:

 counter = new Array();
 counter = document.getElementsByTagName("div");
 for (i in counter) {
 if(counter[i].id.substr(0,4) == "show") {
 // document.getElementById(counter[i].id).style.visibility = "hidden";
 }
 }

mit diesem Schritt möchte ich alle div felder ausschalten die mit der id „show…“ beginnen.

Das problem ist das es auch felder gibt keine id haben. wodurch das script dann aussteigt.

Gruß
Phillip

Hallo Phillip,

informiere Dich mal über „try-catch“-Exceptionhandling, dann kannst Du folgendes evtl. besser verstehen:try
{
a = 10 / 0;
}
catch( e )
{
; // Ignoriere Division durch 0
};Gruß
Volkmar

Hallo Phillip,

es ist (egal ob in PHP, JavaScript oder einer anderen Script-/Programmiersprache) aeusserst unschoen solche Warnungen zu unterdruecken. Zumal das @ in PHP auch nur die Warnungen unterdrueckt, bei (richtigen) Fehlern bringt das auch nichts.
Fuer Dein Beispiel waehre es besser vorher zu pruefen ob das Element eine ID besitzt.

Beispiel:

 counter = new Array();
 counter = document.getElementsByTagName("div");
 for (i in counter) {
 if(counter[i].id && counter[i].id.substr(0,4) == "show") {
 // document.getElementById(counter[i].id).style.visibility = "hidden";
 }
 }

Gruss
Stefan

Hallo Philip,

Try/catch birgt immer die Gefahr, dass man Fehler, die man vermeiden sollte, einfach stehen läßt. Daher versuche ich lieber vorher zu prüfen. Try/Catch verwende ich meist nur „aus faulheit“ oder weil ich nicht weiss, wie der Fehler zu vermeiden ist. Für dein Problem folgender Vorschlag:

 counter = new Array();
 counter = document.getElementsByTagName("div");
 for (i in counter) 
 {
 if(counter[i].id)
 if(counter[i].id.substr(0,4) == "show") 
 if(document.getElementById(counter[i].id).style)
 document.getElementById(counter[i].id).style.visibility = "hidden";
 }

Wenn ich mich recht entsinne, muss Style schon als Attribut vorhanden sein, um es zu ändern. Wenn du nicht sicherstellen kannst/willst, dass es vorhanden ist, must du das Attribut ergänzen und entsprechend setzen. (Wie das geht hab ich jetzt nicht parat)
mfg

Dirk.Pegasus