2009-09-17 8 views
0

J'ai une application web ASP.NET qui est petite mais qui a une bonne quantité de C# derrière elle.Rupture du code dans la dernière méthode exécutée

J'essaye d'exécuter du code, qui dépend d'une bibliothèque de classe/.dll que j'ai produite (contenant la logique métier). Lorsque je débogue, après avoir lié à la propriété datasource, j'obtiens une référence d'objet non définie sur un objet d'instance. Je sais comment corriger ces erreurs car j'ai fait plus que mon salon quand j'ai manqué d'expérience, mais le problème est que je ne trouve pas la dernière méthode à exécuter (ce qui à son tour m'aidera à trouver la variable à faute) jusqu'à cette exception. Y a-t-il un moyen de faire casser le code lorsqu'il atteint la ligne de code provoquant cette exception (ou la ligne de code correspondant à la dernière méthode appelée dans la pile)? Je vais probablement faire une recherche pour la signature de cette méthode, mais je n'aime pas vraiment cette approche. Est-ce quelque chose pour windbg? Je suppose que c'est ce qu'ils veulent dire par un code non supportable.

Répondre

1

Examinez la trace de pile qui est probablement imprimée avec l'erreur.

Essayez aussi casser des exceptions - Menu Debug -> Exceptions, choisissez Exceptions CLR

+0

Ah oui, c'était l'option que je recherchais. J'ai lu à ce sujet il y a quelques semaines aussi. Je veux que le code casse et retourne dans VS et avec la popup dans le fichier .cs à blâmer. – dotnetdev

+0

Je suis content que c'est ce que vous cherchiez :) Merci pour l'acceptation - pas assez de gens semblent prêts à le faire! –

0

VS doit mettre en évidence la ligne à partir de laquelle l'exception a été levée. Si ce n'est pas le cas, vous pouvez l'activer dans Debug> Exceptions. Si vous mettez un point d'arrêt sur ou avant cette ligne (ou s'il ne vous donne pas de ligne, le ou avant le code que vous suspectez de le lancer), puis "Step In" à plusieurs reprises, vous finirez par atteindre le code où le l'exception est levée.

+0

J'ai oublié d'écrire, après la ligne où je lie à la source de données, l'exception se produit mais il n'y a pas d'autre ligne de code exécutée (bien ne pas frapper en traversant). – dotnetdev

Questions connexes