Question

Je débogue une application de production qui présente une série de blocs catch vides soupir:

try {*SOME CODE*}
catch{}

Existe-t-il un moyen de voir quelle est l'exception lorsque le débogueur atteint le piège dans l'IDE ?

Était-ce utile?

La solution

Dans VS, si vous regardez dans la zone Locals de votre IDE à l'intérieur du bloc catch, vous aurez quelque chose comme $EXCEPTION qui contiendra toutes les informations sur l'exception qui vient d'être interceptée.

Autres conseils

Dans Visual Studio - Débogage -> Exceptions -> Cochez la case « Common Language Runtime Exceptions » dans la colonne lancée

Tu peux écrire

catch (Exception ex) { }

Ensuite, lorsqu'une exception est levée et interceptée ici, vous pouvez inspecter ex.

Non, c'est impossible, car ce bloc de code dit "Je m'en fiche de l'exception".Vous pouvez effectuer une recherche globale et remplacer par le code suivant pour voir l'exception.

catch {}

avec ce qui suit

catch (Exception exc) {
#IF DEBUG
    object o = exc;
#ENDIF
}

Cela permettra de conserver votre capture actuelle de ne rien faire pour le code de production, mais lors de l'exécution dans DEBUG, cela vous permettra de définir des points d'arrêt sur l'objet o.

Si vous utilisez Visual Studio, il existe la possibilité d'interrompre chaque fois qu'une exception est levée, qu'elle soit non gérée ou non.Lorsque l'exception est levée, l'assistant d'exception (peut-être uniquement VS 2005 et versions ultérieures) vous indiquera de quel type d'exception il s'agit.

Frapper Ctrl+Alt+E pour afficher la boîte de dialogue des options d'exception et l'activer.

Ne pouvez-vous pas simplement ajouter une exception à ce stade et l'inspecter ?

@sectrean

Cela ne fonctionne pas car le compilateur ignore la valeur Exception ex si rien ne l'utilise.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top