Condividi tramite


Procedura: registrare eccezioni in Visual Basic

Aggiornamento: novembre 2007

È possibile utilizzare gli oggetti My.Application.Log e My.Log per registrare informazioni sulle eccezioni che si verificano nell'applicazione. Negli esempi riportati di seguito è illustrato l'utilizzo del metodo My.Application.Log.WriteException per registrare le eccezioni rilevate in modo esplicito e quelle non gestite.

Per registrare le informazioni di analisi, utilizzare il metodo My.Application.Log.WriteEntry. Per ulteriori informazioni, vedere Metodo WriteEntry (My.Application.Log e My.Log).

Per registrare un'eccezione gestita

  1. Creare il metodo che genererà le informazioni sull'eccezione.

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Utilizzare un blocco Try...Catch per rilevare l'eccezione.

    Try
    Catch ex As Exception
    End Try
    
  3. Inserire il codice che potrebbe generare un'eccezione nel blocco Try.

    Rimuovere il commento dalle righe Dim e MsgBox per indurre un'eccezione NullReferenceException.

    ' Code that might generate an exception goes here.
    ' For example:
    '    Dim x As Object
    '    MsgBox(x.ToString)
    
  4. Nel blocco Catch, utilizzare il metodo My.Application.Log.WriteException per scrivere le informazioni sull'eccezione.

    My.Application.Log.WriteException(ex, _
        TraceEventType.Error, _
        "Exception in ExceptionLogTest " & _
        "with argument " & fileName & ".")
    

Per registrare un'eccezione non gestita

  1. Selezionare un progetto in Esplora soluzioni. Scegliere Proprietà dal menu Progetto.

  2. Fare clic sulla scheda Applicazione.

  3. Fare clic sul pulsante Visualizza eventi di applicazioni per aprire l'editor del codice.

    Verrà aperto il file ApplicationEvents.vb.

  4. Aprire il file ApplicationEvents.vb nell'editor del codice. Scegliere Eventi MyApplication dal menu Generale.

  5. Scegliere UnhandledException dal menu Dichiarazioni.

    L'evento UnhandledException viene generato dall'applicazione prima che sia eseguita l'applicazione principale.

  6. Aggiungere il metodo My.Application.Log.WriteException al gestore eventi UnhandledException.

    My.Application.Log.WriteException(e.Exception, _
        TraceEventType.Critical, _
        "Application shut down at " & _
        My.Computer.Clock.GmtTime.ToString)
    

Esempio

Nell'esempio riportato di seguito viene illustrato il codice completo per registrare un'eccezione gestita.

Public Sub ExceptionLogTest(ByVal fileName As String)
    Try
        ' Code that might generate an exception goes here.
        ' For example:
        '    Dim x As Object
        '    MsgBox(x.ToString)
    Catch ex As Exception
        My.Application.Log.WriteException(ex, _
            TraceEventType.Error, _
            "Exception in ExceptionLogTest " & _
            "with argument " & fileName & ".")
    End Try
End Sub

Nell'esempio riportato successivamente viene illustrato il codice completo per registrare un'eccezione non gestita. Per accedere agli eventi dell'applicazione nell'editor del codice è possibile utilizzare Progettazione progetti. Per ulteriori informazioni, vedere Procedura: gestire gli eventi di applicazioni (Visual Basic).

Private Sub MyApplication_UnhandledException( _
    ByVal sender As Object, _
    ByVal e As ApplicationServices.UnhandledExceptionEventArgs _
) Handles Me.UnhandledException
    My.Application.Log.WriteException(e.Exception, _
        TraceEventType.Critical, _
        "Application shut down at " & _
        My.Computer.Clock.GmtTime.ToString)
End Sub

Vedere anche

Attività

Procedura: scrivere messaggi di log

Procedura dettagliata: individuazione della posizione di inserimento delle informazioni con My.Application.Log

Procedura dettagliata: modifica della posizione di inserimento delle informazioni con My.Application.Log

Concetti

Utilizzo dei log applicazione in Visual Basic

Riferimenti

Oggetto My.Application.Log

Oggetto My.Log

Metodo WriteEntry (My.Application.Log e My.Log)

Metodo WriteException (My.Application.Log e My.Log)