С# как быстро создать правильную ошибку для целей тестирования

У меня есть код в обработчике ошибок. Мне нужно протестировать реалистичную ошибку. Как я могу создать ошибку, которая имеет полную трассировку стека и столь же реалистична, как ошибка времени выполнения.

Я использую общий catch для исключения. Поэтому в данном конкретном случае не нужен особый тип исключения.

Спасибо

Ответ 1

object m = null;
string s = m.ToString();

Мгновенный NullReferenceException.

Ответ 2

Что насчет

throw new Exception("this is a test");

Ответ 3

Вы можете выбросить любое исключение .Net, вызвав

throw new OutOfMemoryException();
throw new IndexOutOfRangeException();
throw new ArgumentNullException();

Имена исключений могут быть любыми исключениями в dotnet. вы даже можете создавать и создавать свои собственные исключения.

Чтобы получить список исключений CLR, нажмите VS в меню отладки, а затем меню исключений.

Ответ 4

Одно исключение DivideByZeroException!:

int i = 0;
int j = 1 / i;

Ответ 5

Вы можете создать исключение с нулевой ссылкой... или деление на нулевое исключение.

Ответ 6

Я рекомендую вам попробовать использовать насмешливую структуру, например. Moq и Rhino Mocks, а затем передать связанное исключение, которое вы надеетесь поймать.

Ответ 7

throw new IndexOutOfRangeException();

Ответ 8

как насчет хорошего старого деления на ноль?

5/0