Ryan Kohn
Ryan Kohn

Reputation: 13509

How to force an exception while debugging in Visual Studio?

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

Answers (4)

Giles Roberts
Giles Roberts

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

Belogix
Belogix

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

Localghost
Localghost

Reputation: 712

Try to use the immediate window while you are on a break point.

Upvotes: -6

Ryan Kohn
Ryan Kohn

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

Related Questions