2010-06-04 6 views
5

Bietet try ... catch(e) denselben Dienst wie On Error Resume Next in VB?On Error Resume Weiter in Javascript?

Ich habe eine Seite, die mehrere JQuery-Plugins sowie einige Funktionen verwendet, die ich selbst geschrieben habe. Es würde viel Arbeit erfordern, alle möglichen Ausnahmen zu behandeln.

Für jetzt möchte ich dem Skript sagen, nicht zu brechen wäre fatale Fehler. Wie mache ich das, wenn ich Plugins verwende?

+1

Eine Ausnahme Ausnahme lösen ist, wie kann man das Skript läuft weiter, wenn alles durcheinander ist ? :) –

+2

Nicht "alles" ist durcheinander. Eher nur etwas um 10%;) –

+0

@ user216441, Nachdem du die Sauerei sortiert hast. – Pacerier

Antwort

6

Ja, try/catch bietet eine Möglichkeit zum Erfassen von Fehlern, obwohl im Gegensatz zu On Error Resume Next Sie entscheiden, mit dem Fehler im catch Block oder überhaupt nicht umzugehen.

So in VB Sie getan haben könnte:

on error resume next 
DoSomethingUnsavory 
if err.number <> 0 then ... 
on error goto 0 ' you DO do this, right? 

In JS würden Sie Folgendes tun:

try { 
    doSomethingUnsavory(); 
} 
catch (e) { 
    // handle the unsavoriness if needed 
} 

Natürlich leeren catch-Blöcke schlecht sind, so lassen Sie sie nicht in der Produktion Code Yadda Yadda. Das beste ist, die Fehler auftreten zu lassen und sie zu beheben. Fail schnell!

+0

Danke. Der Fehler, mit dem ich es zu tun habe, wird durch das Validierungs-Plugin auf verschachtelten Formularen verursacht. Ich bin mir dessen bewusst und versuche es zu beheben. Aber andere Funktionen sind dadurch eingeschränkt (nur bei einigen Browsern). Ich möchte jetzt eine schnelle Korrektur mit dem Scotch-Tape durchführen, bis ich einen Weg finde, den Fehler zu verhindern. –

+3

Das ist NICHT korrekt, ich weiß, dass dieser Thread sehr alt ist, aber diese Information ist irreführend, bei Fehler resume next ignoriert Fehler und fährt mit dem nächsten Satz fort, try/catch Exits aus dem try body und gibt catch ein, wenn ein Fehler ausgelöst wird. – Gusman

3

Nach meiner Kenntnis gibt es keine On Error Resume Next in Javascript, aber das folgende Modell wird Ihre Anforderung

try 
{ 
    var providerRateAvg = data.entry.gd$rating.average; 
} 
catch(e) 
{}