2010-09-29 3 views
3

J'ai quelques endroits dans l'application C# où les exceptions potentielles ne sont pas interceptées, mais il y a un bloc try-finally pour libérer des ressources avant de planter en cas d'exception. Lorsque j'exécute le code dans Visual Studio et qu'une exception se produit, il se brise sur la ligne correspondante, la marque en jaune et décrit l'exception.Application de finition Visual Studio sur Exception

C'est bon.

Mais après avoir remarqué et lu l'exception, je veux que mon application échoue sauvagement (exécuter les blocs finally). C'est exactement ce qui arriverait si je courais le code en dehors de Visual Studio. Cependant, quand je tape F5 pour continuer, il reste coincé sur cette même ligne, le marquant encore et encore.

Que puis-je faire pour indiquer à Visual Studio que l'application doit continuer = échec?

Répondre

5

En l'occurrence, vous voyez la fonctionnalité Assistant d'exception de Visual Studio. Chaque fois qu'il y a une exception non gérée dans le code utilisateur, elle s'affiche pour informer l'utilisateur du problème. Malheureusement, dans certaines circonstances, il ne peut pas être fait disparaître et vous obtenez le comportement que vous décrivez. C'est vraiment très frustrant quand cela arrive. La meilleure façon de contourner le problème consiste à désactiver l'assistant d'exception.

  • Outils -> Options
  • Debugging -> Générale
  • Décochez la case "Activer l'assistant d'exception"
0

Visual Studio continuera après avoir interrompu les exceptions si vous avez une instruction catch correspondante pour le type d'exception levée. Toutefois, vous pouvez désactiver complètement l'assistant d'exception pour des exceptions spécifiques en accédant au menu Déboguer> Exceptions et en décochant les exceptions que vous souhaitez ignorer.

+0

Non, je ne les attrape pas, comme je l'ai dit dans ma question. Mais j'ai finalement un blocage. – chiccodoro

+0

Hmm, si vous ne l'attrapez pas, quel est le point de continuer à exécuter le programme? Le débogueur vous dit simplement "c'est mort, game over". –

+0

@Hans, JamesMLV: Avez-vous lu ma question? "... ne sont pas attrapés, mais il y a un bloc try-finally ..." "... je veux que mon application ... exécute enfin les blocs ..." – chiccodoro

1

Parfois, je trouve que je dois frapper F5 à plusieurs reprises. Je sais qu'il s'arrêtera à chaque relance ou essayera de bloquer l'exception, il se peut donc qu'il se répète car l'exception se produit dans une fonction de bibliothèque et est filtrée via plusieurs instructions try avant de quitter la fonction de bibliothèque. VS, cependant, montrera cet appel de bibliothèque plusieurs fois. Cependant, je ne me suis jamais vraiment coincé. Frapper F5 quelques fois le fera bouger à nouveau.

+0

Bon à savoir! J'essaierai ça la prochaine fois que ça arrivera pour moi. – chiccodoro

+0

A eu le même problème récemment, et frapper F5 plusieurs fois n'a pas aidé. – chiccodoro

Questions connexes