2012-09-24 1 views
1

Je crée un modèle de conception pour les non-développeurs et j'incorpore un gestionnaire d'erreur catch all avec l'événement UnhandledException. Je voudrais écrire l'erreur dans un fichier journal, mais le nom du fichier journal a un horodatage, donc il va changer à chaque exécution. Est-ce que mon gestionnaire peut recevoir ou accéder à la chaîne de nom de fichier journal?Y at-il un moyen de transmettre des données supplémentaires au gestionnaire d'événements MyApplication_UnhandledException?

Merci pour toute aide

Répondre

2

Habituellement, le gestionnaire d'événements UnhandledException est situé dans la classe qui contient votre code de démarrage. Il n'y a donc rien pour vous empêcher de définir une variable publique partagée dans cette classe qui contient le nom de votre fichier journal. Vous pouvez initialiser sa valeur au démarrage en lisant à partir d'un fichier de configuration. Ensuite, à l'intérieur de l'événement est possible d'utiliser cette variable pour ouvrir votre fichier journal et écrire vos informations

EDIT: dans votre scénario, vous pouvez essayer cette pseudocode

Partial Friend Class MyApplication 

    ' the name for the log file 
    Public logName As String 

    Private Sub MyApplication_UnhandledException(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException 
     Dim ex As Exception = e.Exception 
     If Not ex Is Nothing Then 
      MessageBox.Show(ex.Message) 
      Using sw = new StreamWriter(My.MyApplication.logName) 
       ..... 
      End Using 
     End If 
    End Sub 
End Class 

et dans votre formulaire intial ajouter cet appel à définir le nom_journal

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    My.Application.logName = "C:\temp\text.txt" 
    ' as test 
    Throw New Exception("This is an unhandled exception") 
End Sub 
    End Sub 
+0

visual studio 08 veut que vous arrêtiez ici Namespace Mon classe partielle ami MyApplication Sous MyApplication_UnhandledException privé (expéditeur de ByVal comme objet, _ ByVal e comme Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) _ Poignées Me.UnhandledException End Sub End Class End Namespace – Theo

Questions connexes