7
votes

C # Messages d'erreur MessageBox

Dans mon application, j'utilise des boîtes de message pour afficher les informations d'erreur. XXX

C'était bien au début, mais comme mon programme la pousse devient de plus en plus difficile de trouver le bloc d'essais où Cette erreur est générée. Existe-t-il un moyen d'afficher la ligne de code ou de fonction dans laquelle l'erreur a été générée? J'utilise Microsoft Visual C # 2008 Express Edition. Merci.


1 commentaires

Dans les cas où vous affichez une zone d'erreur, vous souhaitez souvent masquer les détails désordonnés (comme la stacktrace) de l'utilisateur. Je recommande vivement que vous vous connectiez l'exception quelque part (avec StackTrace) afin que vous puissiez le déboguer plus tard. Il existe plusieurs bons packages de journalisation, tels que Nlog ou Log4Net, que vous pouvez utiliser pour vous aider avec cela.


6 Réponses :


7
votes

Cela vous donnera beaucoup d'informations sur la méthode qui a provoqué l'erreur (The StackTrace)

MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);


0 commentaires

1
votes

Il suffit d'afficher le Exception .Stacktrace . Il contiendra toutes sortes d'informations utiles qui devraient vous aider à trouver la ligne de code offensante.


0 commentaires

0
votes

Il y a exception.stacktrace , qui est souvent un peu un peu pour une boîte de message. Aussi exception.targetsite.name devrait aussi être utile.


0 commentaires

0
votes

Vous souhaitez examiner l'ex.stacktrace () qui vous donnera des détails complets sur l'emplacement de l'exception lancée. Vous voudrez peut-être aussi vérifier l'Innexception.


0 commentaires

0
votes

Pourquoi n'ajoutez-vous pas d'informations supplémentaires au message d'erreur pour vous permettre de le trouver plus facilement? Vous pouvez ajouter un autre texte après la chaîne "Erreur" en fonction de l'endroit où la boîte de message est en cours de création.

L'exception qui est lancée contient plusieurs fonctions pour vous permettre d'obtenir une explication plus détaillée d'une erreur.


2 commentaires

Je ne veux pas penser à un nouveau message d'erreur (que je ne verrai probablement jamais) pour chaque bloc de capture possible.


Je veux dire dans les lignes d'utilisation de l'ex .Tostring (), pas d'ajout manuellement du texte.



0
votes

Il y a quelques options que vous avez à votre disposition.

  1. Mettez quelque chose dans votre boîte de message si vous souhaitez donner des informations de contexte
  2. Affiche les informations sur la trace de la pile, si sur une ligne de construction de débogage sera incluse

    Cependant, je ferais pruder cette pratique, si vous constatez que vous en obtenez trop et que vous ne pouvez pas comprendre où, je commencerais à rechercher votre code pour vous assurer que vous n'avez pas Problèmes.


1 commentaires

Je ne veux pas penser à un nouveau message d'erreur (que je ne verrai probablement jamais) pour chaque bloc de capture possible.