2010-05-28 4 views
2

HI, J'ai un gestionnaire d'exception générique global (catch ex comme Exception) pour toutes les exceptions non gérées de l'application. Mais en mode débogage (l'application fonctionne à partir de VS), je ne veux pas que les exceptions vont à ce gestionnaire global. Mieux pour moi, c'est quand VS arrête l'application sur place quand une exception se produit.Exception de capture uniquement dans la version

Comment puis-je faire cela, ou y at-il une meilleure approche pour cela?

grâce

Répondre

3

J'ai finalement trouvé la solution:

Try 
    ...... 
#If DEBUG Then 
    Catch ex As Exception When False 
#Else 
    Catch ex As Exception 
#End If 
    ...... 
    End Try 

ps: grâce à JYelton pour soupçon.

modifier: solution

2

Vous pouvez utiliser un preprocessor directive (cet exemple est C#):

#if DEBUG 
// omit exception handling (or use a different one) 
#else 
// exception handling event subscriber here 
#endif 
+0

bonne idée simplifiée mais je n'en veux faire ceci: #if DEBUG ... beaucoup de code ... #else essayer ... beaucoup de code ... catch ex as Exception end try #endif , en raison de la répétition du code. Y a-t-il d'autres approches? – Cicik

+0

Vous pouvez définir une variable à l'intérieur du '# DEBUG' et l'utiliser pour mieux différencier ce qu'il faut faire (ou pas) en mode débogage. Il semble que vous souhaitiez gérer différemment les exceptions à plusieurs endroits en fonction de ce commentaire, plutôt que simplement d'un gestionnaire global. – JYelton

Questions connexes