78 votes

Éviter les messages d’exception de première chance lorsque l’exception est gérée en toute sécurité

Le bit suivant du code intercepte l’Exception de l’EOS

Alors pourquoi ai-je encore reçu exceptions de première chance dans ma console ?

Une exception de première chance de type « System.IO.EndOfStreamException » s’est produite dans mscorlib.dll

Y a-t-il un moyen de cacher ces premiers messages d’exception de chance ?

190voto

André Neves Points 3080

Pour ne pas voir les messages, faites un clic droit sur la fenêtre sortie et décochez la case « Messages d’Exception ».

Cependant, voyant leur arriver serait sympa, si vous êtes intéressé à savoir quelle exceptions sont levées sans définir des points d’arrêt et de reconfigurer le débogueur.

79voto

Brad Wilson Points 22910

Le point d’exceptions « première chance » est que vous voyez leur gestionnaire avant afin que vous pouvez vous arrêter sur eux pendant le débogage au moment de lancer. Une exception de « seconde chance » est celui qui ne possède aucun gestionnaire approprié. Parfois, vous voulez intercepter des exceptions « première chance » parce qu’il est important de voir ce qui se passe lorsqu’elle est levée, même si quelqu'un c’est contagieux.

Il n’y a rien à se préoccuper. Il s’agit d’un comportement normal.

20voto

AlexDuggleby Points 4322

1) Dans Visual Studio, vous pouvez modifier les paramètres de la façon dont le Débogueur poignées (pauses) exceptions.

Aller à Déboguer > Exceptions. (Remarque: cela peut ne pas être dans votre menu en fonction de votre Environnement de Visual Studio réglage. Si non il suffit de l'ajouter à votre menu à l'aide du menu Personnaliser.)

Là, vous êtes présenté avec une boîte de dialogue d'exceptions et quand s'abattre sur eux.

Dans la ligne "Common Language Runtime Exceptions", vous pouvez le désélectionner jeté (qui devrait alors cesser de vous ennuyer sur premier chance exceptions) et vous pouvez également désélectionner l'Utilisateur unhandeled (que je ne recommande pas), si vous voulez.

2) Le message que vous obtenez ne devrait pas être dans la console, mais devrait être figurant dans la "production" de la fenêtre de Visual Studio. Si ce dernier est le cas, alors je n'ai pas trouvé la possibilité de le supprimer, mais il n'apparaît pas si vous exécutez l'application, sans Visual Studio.

Espérons que cela aide.

12voto

loudej Points 1590

Contrairement à Java, Dotnet exceptions sont assez coûteux en termes de puissance de traitement et géré des exceptions doit être évitée dans le chemin d’exécution normale et réussie. Non seulement vous évitez l’encombrement dans la fenêtre de console, mais permettra d’améliorer vos performances et il fera des compteurs de performance comme Exceptions CLR .NET plus significatif.

Dans cet exemple, vous utiliseriez

7voto

Hallgeir Engen Points 217

J’ai eu ce problème et ne pouvaient pas comprendre où l’exception a été levée. Ma solution consistait donc à Visual Studio pourra arrêter l’exécution sur ce genre d’exception.

  1. Accédez à « Debug/Exceptions »
  2. Développez l’arborescence « Exceptions Common Language Runtime ».
  3. Développez la branche « Système ».
  4. Faites défiler jusqu'à où est « NullReferenceException » et cochez la case « lancer » et décochez la « gérées par l’utilisateur ».
  5. Déboguer votre projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X