Che cosa significa la “on error goto 0” e “error resume next” nella vecchia ASP?

Sto lavorando con il vecchio codice di ASP e io non sono sicuro circa la semantica di on error goto 0 e error resume next costruzione.

Mi potrebbe consigliare alcune risorse utili o enlight direttamente a me?

OriginaleL’autore Jakub Šturc | 2009-05-13

4 Replies
  1. 4

    On error resume next: Se c’è un’eccezione nel programma, basta ignorarlo e continuare con l’istruzione successiva. Considerato molto cattivo e brutto, e giustamente, a mio parere. E ‘ come avere un grande:

    try
    {
      // your code
    }
    catch
    {
      // nothing! muhaha
    }

    in ogni metodo di codice (o, peggio, di tutto il intero programma).

    On error goto 0: disabilita qualsiasi gestore di errore che viene definito nella procedura attuale. E ‘ come avere un grande try-catch in tutto il codice, che viene disattivata non appena la sua hit di questa linea.

    Per ulteriori informazioni, vedere la MSDN.

    +1 Sì. Ho appena scoperto questo: Se si utilizza On Error Goto 0, allora ogni altra istruzione On Error nella procedura diventa disabili. Che è stato totalmente inaspettato. Ho pensato che la documentazione era detto che solo l’ultimo eseguito gestore di errore è disattivato. Mi aspettavo che se il codice raggiunge un altro gestore di errore che si sarebbe attivato di nuovo, ma non è così.

    OriginaleL’autore Razzie

  2. 3

    su errore di andare a richiede l’esecuzione di codice, un codice libro di mark definito nella pagina.questo è utile quando si desidera eseguire nulla nel caso in cui viene rilevato un errore.

    On error resume next passa al successivo codice di esecuzione dopo il codice errato. Sostanzialmente ignora l’errore e continua con il codice. Questo è particolarmente utile quando si sta elaborando 100s di record e non si desidera che il codice di interrompere l’esecuzione in caso di eventuali record genera errore.

    OriginaleL’autore Vikram

  3. 3

    on error resume next significa solo che ignorare l’errore e riprendere la prossima
    on error goto 0 significa fine on error resume next
    è anche possibile fare questo

         <%
            on error resume next '<-- This code will resume and continue executing the code if there is an error
    
    
    
    'YOUR CODE HERE
    
    if err.number > 0 then  '<-- This code will look if there are any errors (even if resumed)
    ' or use If Err.Number <> 0 Then
    
    
            'DO SOMETHING IF ERROR
        %>
            Error Number <%= Err.Number %><BR>
            Error Description <%= Err.Description %><BR>        
            Source <%= Err.Source %><BR>
    
            LineNumber <%= Err.Line %><BR>
    
            <%end if%>
    Questo genererà un errore di sintassi, quindi non può essere utilizzato per dimostrare errore di run-time di gestione.
    Yup, ho modificato. Thx per la segnalazione 🙂

    OriginaleL’autore compcobalt

  4. 1

    Che ho utilizzato “esecuzione del singolo” Do Loop per costruire ASP classico gestori di errore che ha coperto più righe di codice e più casi di errore. La tecnica si basa su (compensa?) l’uso di “On Error Resume Next”, rompendo il ciclo non appena si verifica un errore, la sperimentazione e la reazione alle classi di errori in alcune follow-in caso di errore il codice di gestione. Si noti che, poiché l’interruzione si verifica in un loop la stessa funzione del ciclo, è ancora il contesto (variabili) che quando il ciclo è ancora in esecuzione, in modo che il vostro gestore di errore dovrebbero utilizzare questo contesto, registro intelligente errori e pulire qualsiasi persistente riferimenti appropriati.

    Controllare la risposta “Larry” fornito a una simile domanda per un rapido esempio di questo.

    Come gestire gli errori in VB Script

    OriginaleL’autore user3038458

Lascia un commento