C # создать роковое исключение? - PullRequest
0 голосов
/ 22 марта 2011

У меня есть странный сценарий, когда мое приложение может зайти в бесконечный цикл при завершении работы.Это происходит, когда он хочет что-то сделать, но вызовы терпят неудачу, поскольку у него больше нет доступа (на основе времени).В таком случае это должно просто остановиться.Я записываю неудачные попытки, и если число превышает определенное число в определенное время, я выдаю исключение, которое я ожидаю, чтобы запустить отладчик JIT и остановить приложение.Я не совсем уверен, почему он попадает в цикл, поэтому я хочу окно JIT, которое дает мне такую ​​информацию, как стек вызовов и состояние приложения.У меня есть обработка исключений, но я хочу отключить ее и каким-то образом сгенерировать исключение, которое вызовет отладчик JIT, однако все остальные сообщения, которые я обнаружил, были посвящены обработке исключений и предотвращению сбоев.Если во время выполнения есть другой способ остановить приложение и сообщить мне, что происходит, я хотел бы знать.Спасибо.

Ответы [ 3 ]

1 голос
/ 22 марта 2011

Эта строка:

System.Diagnostics.Debugger.Launch();

запустит отладчик для вас.Попробуйте.

1 голос
/ 22 марта 2011

У меня есть обработка исключений

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

Использование System.Diagnostics.Debugger также хорошо, но оберните его с помощью #ifdef DEBUG.У вашего клиента его нет.

1 голос
/ 22 марта 2011

Вам следует попробовать методы Debugger.Launch () и Debugger.Break () (но помните, что вы должны использовать их только в среде разработки). Вы можете прочитать больше здесь: http://msdn.microsoft.com/en-us/library/7kzs2ysh.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...