Gestione errori

di il
4 risposte

Gestione errori

Buongiorno
volevo sapere se in Access è possibile fare una procedura generalizzata di gestione errori, richiamabile poi da ogni evento tramite la funzione on error goto (oppure gosub) o bisogna mettere il codice della gestione errori per ogni evento che gestiamo?
grazie

4 Risposte

  • Re: Gestione errori

    Diciamo che si può fare tutto, molto è limitato dalla capacità dello sviluppatore...

    Puoi tranquillamente creare una gestione eventi Generalizzata, certo poi nessuno ti esime dalla valutazione delle azioni specifiche che devi eseguire in caso di Errore nella singola Funzione/Sub...
    Quindi la risposta è si, ma distingui bene l'esigenza dalla voglia di centralizzare.

    Ad esempio se devi realizzare un LOG di errori per DEBUG è indiscutibilmente utile centralizzarlo...
    Se invece devi gestire un'errore di connessione al server, il fatto di centralizare la gestione errori non può non consentire alla Funzione di Connessione di gestirne l'errore... quindi riprivare più volte a connettersi o cambiare risorsa di connessione o altro...!
    In questo caso dubito fortemente tu voglia realizzare nella Routine Centrale anche la gestione della riconnessione(che ovviamente è un'esempio)...
    Quindi potresti centralizzare il Messaggio o la generazione del LOG, ma poi devi rientrare nella Funzione principale e procedere...

    Spero di aver chiarito.
  • Re: Gestione errori

    Chiarissimo e concordo
    vorrei avere una centralizazione degli errori per evitare che errori non gestiti mi blocchino il flusso
    La mia idea sarebbe quella di gestire gli errori evento per evento ma poi avere una procedura che intervenga in caso di errore non intercettato o prevsito o dimenticato
    Detto ciò, sarebbe importante anche capire il come
    Devo creare un modulo?
    come lo richiamo?
    Grazie

    gm
  • Re: Gestione errori

    Non capisco cosa intendi bene come errori non gestiti... ma ti faccio un'esempio:
    Questo codice di Esempio è in una Form:
    
    Private Sub NomeControllo_Click()
        On Error GoTo HandleErrors
        ' resto del codice...
    
        ......
    ExitHere:
        Exit Sub
        
    HandleErrors:
        Select Case Err.Number
            Case is=1500
                 Esegui Quello che vuoi...
            Case Else
                Call HandleError(Me.Name & ".NomeControllo_Click()", Err.Number, Err.Description)
        End Select
        Resume ExitHere
    End Sub
    Ora in un Modulo vai a gestire quello che serve in modo centralizzato, quì fa uscire un Messaggio:
    
    Prublic Sub HandleError(strName As String, _
                        lngNumber As Long, strDescription As String)
    
        MsgBox "Error: " & strDescription & _
                      " (" & lngNumber & ")", vbExclamation, strName
    End Sub
  • Re: Gestione errori

    Grazie domani me la studio, faccio le prove e al max ti chiedo ancora consigli!

    gm
Devi accedere o registrarti per scrivere nel forum
4 risposte