Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

ThreadExceptionEventArgs, classe

Fournit des données pour l'événement ThreadException.

Espace de noms: System.Threading
Assembly : System (dans system.dll)

public class ThreadExceptionEventArgs : EventArgs
public class ThreadExceptionEventArgs extends EventArgs
public class ThreadExceptionEventArgs extends EventArgs
Non applicable.

ThreadExceptionEventArgs est créé par un thread en cas d'exception non gérée. ThreadExceptionEventArgs contient le Exception survenu.

L'exemple suivant vous permet de déclencher un événement ThreadException en cliquant sur button1 dans un formulaire. L'exemple crée deux classes. La classe ErrorHandler crée le formulaire et le bouton qui déclenche l'événement. La classe CustomExceptionHandler fournit les méthodes permettant de gérer l'exception.

Dans le Main de la classe ErrorHandler, le code crée une nouvelle instance de la classe de gestion des exceptions, c'est-à-dire une instance de CustomExceptionHandler. L'instance est alors ajoutée à l'événement et l'application est exécutée.

Dans la méthode OnThreadException de la classe CustomExceptionHandler, une instruction try...catch...finally est utilisée dans l'exemple pour traiter l'exception. La méthode ShowThreadExceptionDialog crée le message à afficher et l'affiche dans une zone de message.

// Creates a class to throw the error.
 public class ErrorHandler : System.Windows.Forms.Form {
 
    // Inserts code to create a form with a button.
 
    // Programs the button to throw the exception when clicked.
    private void button1_Click(object sender, System.EventArgs e) {
       throw new ArgumentException("The parameter was invalid");
    }
 
    public static void Main(string[] args) {
       // Creates an instance of the methods that will handle the exception.
       CustomExceptionHandler eh = new CustomExceptionHandler();
 
       // Adds the event handler to to the event.
       Application.ThreadException += new ThreadExceptionEventHandler(eh.OnThreadException);
 
       // Runs the application.
       Application.Run(new ErrorHandler());
    }
 }
 
 // Creates a class to handle the exception event.
 internal class CustomExceptionHandler {
 
    //Handles the exception event
    public void OnThreadException(object sender, ThreadExceptionEventArgs t) 
    {
       DialogResult result = DialogResult.Cancel;
       try {
          result = this.ShowThreadExceptionDialog(t.Exception);
       }
       catch {
          try {
             MessageBox.Show("Fatal Error", "Fatal Error", 
                MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop);
          }
          finally {
             Application.Exit();
          }
       }
 
       // Exits the program when the user clicks Abort.
       if (result == DialogResult.Abort) 
          Application.Exit();
    }
 
    // Creates the error message and display it.
    private DialogResult ShowThreadExceptionDialog(Exception e) {
       string errorMsg = "An error occurred please contact the adminstrator " +
            "with the following information:\n\n";
       errorMsg = errorMsg + e.Message + "\n\nStack Trace:\n" + e.StackTrace;
       return MessageBox.Show(errorMsg, "Application Error", 
            MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop);
    }
 }
 

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 est pris en charge sur Windows Vista, Microsoft Windows XP SP2 et Windows Server 2003 SP1.

.NET Framework

Prise en charge dans : 3.0, 2.0, 1.1, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft