Reputation: 13509
I am running my application in debug mode, and I would like to manually throw an exception (i.e. not from within the code). Is there any way to do this?
Of course, running throw new Exception("My forced exception");
in the Command or Immediate window doesn't work.
EDIT: I want the exception to be caught by the try-catch statement that surrounds the code I'm debugging.
Upvotes: 65
Views: 38990
Reputation: 6883
If you're running within the context of a unit test, and the point where you want the exception to originate is behind an injected interface or class, you can create a mock object that throws the exception.
The advantage of this is, once you're happy that you've replicated the error, you can construct a new unit test for your regression suite.
Upvotes: 1
Reputation: 8147
You could add a method similar to:
public static void ThrowAnException(string message)
{
throw new ApplicationException(message);
}
Then, using the Immediate window, you could call ThrowAnException("Whoops")
Upvotes: 13
Reputation: 712
Try to use the immediate window while you are on a break point.
Upvotes: -6
Reputation: 13509
One possible way is to break on a line and manually change a nullable variable in the code path to null
just before an operation on it occurs. This will cause a NullReferenceException
to be thrown.
Upvotes: 91