2010-09-05 4 views
1

J'ai regardé le code de code de l'API Windows 1.1 et j'ai vu un exemple d'erreur et je voudrais l'intégrer dans mon application, l'idée principale serait de montrer si une erreur dans le l'application se passe, eh bien pas n'importe lequel mais certains que je choisis.Afficher le formulaire lorsque l'exception se produit C#

Comment puis-je programmer cela?

J'utilise WPF

Merci

Répondre

3

Dans le constructeur de votre class add App:

DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException); 

puis ajoutez une méthode à la classe App semblable au suivant:

void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) 
    { 
     e.Handled = true; 
     if (MessageBox.Show("An unexpected error has occurred. You should exit this program as soon as possible.\n\n" + 
          "Exit the program now?\n\nError details:\n" + e.Exception.Message, 
          "Unexpected error", MessageBoxButton.YesNo) == MessageBoxResult.Yes) 

      Shutdown(); 
    } 
+0

Fonctionne très bien merci beaucoup! –

1

Vous pouvez avoir un bloc catch au plus haut niveau de votre programme qui affichera le formulaire avec les détails d'erreur pertinents. Vous pouvez également intercepter des exceptions non gérées à l'aide de Application.UnhandledException (en supposant que vous utilisiez des winforms), Application.ThreadException et AppDomain.UnhandledException. Si vous voulez qu'une fenêtre de message apparaisse lorsqu'une exception se produit, traitée ou non, alors vous devrez écrire explicitement du code dans chaque bloc catch pour afficher le formulaire, ou utiliser quelque chose comme PostSharp pour tisser du code affiche le formulaire chaque fois qu'une exception est levée.

+0

Seriez-vous en mesure de donner un exemple avec WPF? Merci –

+0

Je n'ai pas fait WPF, donc je l'ai trouvé sur le site Web de Microsoft: http://msdn.microsoft.com/en-us/library/ms743714.aspx#Unhandled_Exceptions – siride

0

Ce qui suit attraper toutes les exceptions et les afficher dans une boîte de message:

Prenez note que si vous êtes lourd dans le filetage, vous pouvez tester son comportement avec une application de fil lourd.

Plus d'informations here.

+1

Salut, Pouvez-vous montrer à quoi cela ressemblerait dans une application WPF puisque le programme.cs n'est pas dans la structure du fichier. –

Questions connexes