jack: Eine Function die ich nicht verstehe

Hallo!
Es hört sich vielleicht etwas eigenartig an, aber ich hab eine Function gefunden in einer Javascript Datei, die ich überhaupt nicht verstehe. Könnt ihr mir die vielleicht erklären?

function runsecure(proc, errmsg)
{
 try
 {
  eval(proc);
 }
 catch(e)
 {
  if(errmsg!="") alert(errmsg);
 }
}

Danke!
Jack

  1. hi,

    Es hört sich vielleicht etwas eigenartig an, aber ich hab eine Function gefunden in einer Javascript Datei, die ich überhaupt nicht verstehe. Könnt ihr mir die vielleicht erklären?

    function runsecure(proc, errmsg)
    {
    try
    {
      eval(proc);
    }
    catch(e)
    {
      if(errmsg!="") alert(errmsg);
    }
    }

    Fehlerbehandlung mit dem try..catch-Statement
    eval()

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Ahja vielen Dank!
      Das hilft weiter!

  2. Hello,

    function runsecure(proc, errmsg)
    {
    try
    {
      eval(proc);
    }
    catch(e)
    {
      if(errmsg!="") alert(errmsg);
    }
    }

    na ja die grundsätzliche Logik ist recht einfach.
    Mittels eines try-catch-Blockes fängt man Fehler. Man sagt also im try-Block "versuch mal folgende JavaScript-Anweisungen". Tritt dabei eine Exception auf, dann bricht nicht der Browser mit nem gelben Ausrufezeichen oder Eintrag in der JavaScript-Konsole ab, sondern springt einfach in den catch-Block. Passiert kein Fehler geht der Programmablauf hinter dem catch weiter.
    In diesem Fall wird der Fehler in jedem Fall gefangen, optional kann der Programmierer beim Aufruf eine Fehlermeldung mitgeben.
    Mittels eval führt man die Anweisungen in einem String aus, quasi JavaScript in JavaScript.

    Beispiel:
    runsecure("document.getElementById("nicht_existentes_element")", "Element nicht gefunden.");

    MfG
    Rouven

    --
    -------------------
    Inter Arma Enim Silent Leges  --  Cicero