web-dev-qa-db-fra.com

Visual Studio ne rompt pas sur les exceptions non gérées par l'utilisateur

Lors de l'exécution de mon application dans Visual Studio, cela se termine sur des exceptions non gérées plutôt que d'afficher une boîte de message avec les informations d'exception et de continuer comme je suis habitué.

Quelles options dois-je modifier pour retrouver le comportement auquel je suis habitué?

Modifier: dans Debug/Exceptions, j'ai l'option non gérée par l'utilisateur sélectionnée pour les exceptions CLR.

43
BVernon

Debug->Exceptions->Check Thrown/User-Unhandled pour les exceptions Common Language Runtime

edit: Peut-être essayer de faire un nettoyage/reconstruction et recommencer? Peut-être que les symboles de débogage sont corrompus ou quelque chose ..

32
Tom Studee

Pour Visual Studio 2015:

1.Ouvrez la fenêtre des paramètres d'exception (c'est nouveau en 2015) open Exception settings window (it's new in 2015)

2.Vérifiez toutes les exceptions CLR enter image description here

3.Si vous n'avez pas besoin de Visual Studio pour lever des exceptions spécifiques, décochez cette case enter image description here

25
Rabolf

Selon l'application, les options suivantes peuvent vous aider:

Outils → Options ... → Débogage → Général

  • Rupture lorsque les exceptions traversent AppDomain ou les limites gérées/natives (Géré uniquement)
  • Activez l'assistant d'exception
    • Déroulez la pile d'appels sur les exceptions non gérées
  • Décocher Activer Just My Code ← JMC peut vous empêcher d'attraper des exceptions dans un code qui n'est pas le vôtre et/ou qui manque de symboles.
20
Sam Harwell

Dans mon cas, lorsque je suis allé à Debug -> Exceptions, la colonne ser-unhandled était manquante. Aller à Débogage -> Options et paramètres et activer Activer juste mon code a corrigé cela, ce qui a par conséquent résolu ce problème complètement.

17
Sam

Cela m'a corrigé: dans le lancement rapide (Ctrl-Q), tapez "ResetToC #" (ou ResetTo autre chose)

J'ai eu le même problème pendant longtemps. Dans le menu Debug-> Exceptions, la colonne "User-unhandled" était manquante! Extrêmement ennuyeux.

J'ai désinstallé tous mes plugins, j'ai réinstallé VS, mais rien n'a fonctionné (Visual Studio a probablement laissé certains paramètres sur ma machine qu'il a réutilisés après la réinstallation).

Cela pourrait ne pas sembler être la meilleure solution car il doit y avoir un paramètre quelque part qui l'aurait fait également. Je n'ai pas pu le trouver et après avoir été incapable de casser des exceptions non gérées par l'utilisateur pendant des mois, l'option ResetToC # était un soulagement.

4
Matthijs Wessels

J'avais le même problème dans Visual Studio 2013 sur un très grand projet C #. Cependant, si je créais un nouveau projet vide et lançais un test ApplicationException, tout fonctionnerait comme prévu et le débogueur se briserait et me donnerait l'assistant d'exception. Faire la même chose sur mon projet existant ne ferait qu'arrêter le débogage et revenir au mode d'édition VS. J'ai remarqué dans la fenêtre "Sortie", la dernière trace de débogage montrerait

Le programme "[2624] MyApplication.vshost.exe" s'est terminé avec le code -1073741819 (0xc0000005) "Violation d'accès".

Je n'ai pas vraiment le luxe de tout copier dans un nouveau projet, et aucune des suggestions ci-dessus n'a fonctionné pour moi. Par essais et erreurs, j'ai trouvé quelque chose qui fonctionnait: Décochez la case "Dérouler la pile d'appels sur les exceptions non gérées" sous Options> Débogage> Général> Activer l'assistant d'exception.

Par ailleurs, si je force manuellement la pile d'appels à se dérouler sur ce même projet C # via l'assistant d'exception (en cliquant sur le lien "Activer la modification"), le débogueur se ferme simplement et je ne peux pas modifier et continuer. Mais sur un nouveau projet, il se déroule et fonctionne correctement. Il y a donc certainement quelque chose dans mon projet que VS n'aime pas, mais je vais l'utiliser comme solution de contournement acceptable pour l'instant.

3
Nate A

La seule chose qui a fonctionné pour moi était:

Outils -> Paramètres d'importation et d'exportation -> Réinitialiser tous les paramètres, puis réinitialiser en C #.

2
mclaassen

Si vous avez plusieurs projets de site Web dans votre solution, vérifiez que le projet que vous souhaitez déboguer est actif. Faites un clic droit dessus et sélectionnez Définir comme projet de démarrage.

Cela m'a bloqué pendant un certain temps car il n'y a aucun indice évident que le mauvais site Web est en cours de débogage.

0
mm201

Le passage de la plate-forme cible de x64 à x86 m'a aidé

0
Levon Hovhannisyan