2009-06-01 5 views
3

Dans mon code, j'ai actuellement une configuration de gestion des exceptions qui enregistre les exceptions aux fichiers texte. Cependant, lorsque je débogue le code, je préfère ne pas gérer les exceptions et laisser l'exécution s'arrêter plutôt que lire le fichier, définir un point d'arrêt, etc. Y a-t-il un moyen facile de le faire en utilisant les configurations Build et Release comme une directive de préprocesseur je pourrais utiliser pour commenter une partie du code de gestion d'exception)?Comment puis-je arrêter l'exécution de TOUTES les exceptions lors du débogage dans Visual Studio?

Il s'avère qu'il existe une meilleure solution que la question originale demandée, voir la première réponse.

+0

"Debug> Exceptions ..." est une astuce. Vous voudrez peut-être changer le titre de la question en quelque chose comme "comment casser une exception?" ou "comment ignorer la gestion des exceptions?". –

Répondre

7

C# ne have preprocessor directives (par exemple si, définir, etc ...) que vous pouvez utiliser à cet effet. Toutefois, vous pouvez également modifier les paramètres dans "Debug -> Exceptions ..." dans Visual Studio afin que le débogueur cesse chaque fois qu'une exception est levée (avant que l'exécution ne passe au bloc catch).

4

Essayez quelque chose comme ceci:

if (System.Diagnostics.Debugger.IsAttached) 
    System.Diagnostics.Debugger.Break(); 
else 
    LogException(); 
1
#if DEBUG 
// Something 
#else 
// Something else 
#endif 
0

J'hésiterais à utiliser des directives de préprocesseur. J'imagine que vous voulez quelque chose qui s'applique facilement à l'ensemble de votre solution et pas directives préprocesseur bâton partout dans votre code.

Parmi les réponses précédentes, celle de Joel est bonne. Cependant, vous pouvez accomplir la même chose en allant à Debug/Exceptions et assurez-vous que les cases à cocher de la ligne "Common Language Runtime Exceptions" sont sélectionnées. L'utilisateur non géré est généralement sélectionné par défaut.

Questions connexes