Je teste l'interception des exceptions, donc, je n'ai pas besoin de ce studio visuel sur les Thinkgs comme J'ai ce qui suit sous Debug => Exceptions p> Cependant, vs casse sur les exceptions. Que dois-je faire? P> PS. Strong> p> pour la demande non gérée par une exception non gérée, je les "attrape" à l'aide de l'application lancé New NullReferenceException ("myvar") code>.
p>
Application.unhandleXception Code > Comme dans le suivant: p>
3 Réponses :
Si vous lancez une exception qui n'est pas traitée dans votre code, Visual Studio va se briser. Il n'a pas d'autre choix: il y avait une exception non heurtée. En dehors de Visual Studio, l'application montrerait un message d'erreur et informerait l'utilisateur qu'une exception non gérée s'est produite. P>
Les options que vous voyez dans la boîte de dialogue de débogage -> Exceptions ne vous permettent de configurer si Visual Studio rompt sur toutes les exceptions em>, y compris celles qui sont ensuite traitées dans votre code. Celles-ci sont souvent appelées exceptions «de première chance». P>
Au-delà de cela, vous ne devez jamais lancer un NullReferenceException code> vous-même; Il s'agit d'une exception d'exécution réservée au cadre d'exécution. Au lieu de cela, vous devriez lancer un
argumentnulxception code>. P>
Voir mon PS B>. Quant à votre remarque, vous avez peut-être une raison, de toute façon, MSDN vous informe simplement Notez que les applications jettent l'exception ArgumentNulLexception plutôt que la NullReferenceException Exception ... Code>
J'ai eu le même problème lorsque j'ai commencé à utiliser VS2010. J'ai des tests unitaires, ce qui s'attend à des exceptions, et je jette des exceptions de mes fonctions. Ces exceptions sont censées être traitées par l'utilisateur de ma bibliothèque. Dans la boîte de dialogue de débogage-> Images de la boîte de dialogue, j'ai décochées Cochez la case dans la colonne blanchie par l'utilisateur pour les exceptions d'exécution de la langue courante, et VS a cessé de casser ces exceptions. Au fait, je ne vois pas la deuxième colonne dans la boîte de dialogue que vous avez attachée ici. P>
FYI, l'option de débogage "Activer juste mon code (géré uniquement)" doit être vérifié afin de voir la colonne "Utilisateur non manqué" dans la fenêtre Exceptions.
La méthode ci-dessous fonctionne pour moi dans Visual Studio 2015 (un processus similaire peut fonctionner pour VS2010). P>
tiré du studio visuel Documentation sur Gestion des exceptions avec le débogueur : p>
- Dans la fenêtre Paramètres d'exception, ouvrez le menu contextuel en cliquant avec le bouton droit de la souris sur la fenêtre, puis en sélectionnant Afficher les colonnes. (Si vous avez désactivé mon code, vous ne verrez pas cette commande.) Li>
- Vous devriez voir une deuxième colonne nommée des actions supplémentaires. Cette colonne s'affiche Continuer lorsqu'elle est non heurtée par le code de l'utilisateur sur des exceptions spécifiques, ce qui signifie que le débogueur ne casse pas si cette exception n'est pas traitée dans le code de l'utilisateur mais est traitée dans le code externe. LI>
- Vous pouvez modifier ce paramètre soit pour une exception particulière (sélectionnez l'exception, clic droit et sélectionnez / désélectionner Continuer lorsqu'il est non géré dans le code de l'utilisateur) ou pour une catégorie complète d'exceptions (par exemple, toutes les exceptions d'exécution de la langue courante. ). li> ol> blockQuote>
Cela montre que vs ne casse pas toutes les exceptions quand ils sont jetés. Vous auriez besoin de forer le nœud des exceptions CLR pour voir si des exceptions individuelles sont vérifiées.
@Codenaked: i Vérifié: System.NullReferenceException n'est pas cochée.
Où est exactement vs casse-t-il? Ce que vous avez ci-dessus ne "gérer" pas techniquement l'exception, il ne fait que le signaler. Vous auriez besoin de définir E.Hendled sur true pour vraiment "gérer". S'il s'agit de la rupture lorsque l'exception est levée, vous devrez peut-être essayer de «réinitialiser tous» dans la boîte de dialogue Exceptions, car quelque chose peut être hors de gares.
J'ai le même problème ... pas de solution?