2010-06-04 7 views
5

try ... catch(e) fornisce lo stesso servizio di On Error Resume Next in VB?In errore Riprendi Avanti in Javascript?

Ho una pagina che utilizza diversi plugin JQuery e alcune funzioni che ho scritto io stesso. Ci vorrebbe un sacco di lavoro per affrontare tutte le possibili eccezioni.

Per ora, voglio dire che la sceneggiatura per non interrompere sarebbe un errore fatale. Come faccio quando uso i plugin?

+1

Un'eccezione è eccezionale, come è possibile continuare a eseguire lo script se tutto è incasinato ? :) –

+2

Not 'tutto è incasinato. Piuttosto, solo qualcosa di circa il 10%;) –

+0

@ user216441, dopo aver risolto il problema. – Pacerier

risposta

6

Sì, try/catch fornisce un modo per catturare gli errori, anche se a differenza On Error Resume Next si sceglie di trattare con l'errore nel catch blocco o per niente.

Così in VB voi avranno fatto:

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

In JS faresti i seguenti:

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

Naturalmente blocchi vuoto di cattura sono il male perché non li lasciano nella produzione codice yadda yadda. La cosa migliore è lasciare che si verifichino gli errori e correggerli. Fallire veloce!

+0

Grazie. L'errore che ho a che fare è causato dal plugin di convalida su moduli annidati. Ne sono consapevole e sto cercando di risolvere il problema. Ma altre funzioni sono azzoppate a causa di questo (solo su alcuni browser). Per ora voglio una rapida correzione del nastro adesivo, finché non trovo un modo per evitare che si verifichi l'errore. –

+3

Questo NON è corretto, so che questo thread è molto vecchio ma questa informazione è fuorviante, in caso di errore riprendi dopo ignora gli errori e continua con la frase successiva, prova/cattura uscite dal corpo di prova ed entra in catch quando viene generato un errore. – Gusman

3

Secondo la mia conoscenza non c'è On Error Resume Next in javascript, ma il seguente modello risolverà il vostro requisito

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