web-dev-qa-db-fra.com

Comment forcer une exception lors du débogage dans Visual Studio?

J'exécute mon application en mode débogage et je voudrais lever manuellement une exception (c'est-à-dire pas depuis le code). Est-ce qu'il y a un moyen de faire ça?

Bien sûr, l'exécution de throw new Exception("My forced exception"); dans la fenêtre Commande ou Exécution ne fonctionne pas.

EDIT: Je veux que l'exception soit interceptée par l'instruction try-catch qui entoure le code que je débogue.

42
Ryan Kohn

Une façon possible consiste à interrompre une ligne et à modifier manuellement une variable nullable dans le chemin de code en null juste avant qu'une opération ne se produise. Cela entraînera un NullReferenceException à lancer.

58
Ryan Kohn

Vous pouvez ajouter une méthode similaire à:

public static void ThrowAnException(string message)
{
    throw new ApplicationException(message);
}

Ensuite, en utilisant la fenêtre Immediate, vous pouvez appeler ThrowAnException("Whoops")

12
Belogix

Si vous exécutez dans le contexte d'un test unitaire et que le point où vous souhaitez que l'exception se produise se trouve derrière une interface ou une classe injectée, vous pouvez créer un objet factice qui lève l'exception.

L'avantage de ceci est qu'une fois que vous êtes satisfait d'avoir répliqué l'erreur, vous pouvez créer un nouveau test unitaire pour votre suite de régression.

1
Giles Roberts