Как оценить свойства необработанного исключения в непосредственном окне

StackOverflow https://stackoverflow.com/questions/19824047

Вопрос

У меня есть необработанное исключение, которое вызывает появление диалогового окна «Помощник по исключениям».

Когда я нажимаю «Просмотреть детали...», само исключение имеет некоторые значения в своей пользовательской объектной модели, которые не будут оцениваться в сетке свойств, но я знаю, что могу оценить их в ближайшем окне.(В этом случае сетка свойств не позволит мне детализировать коллекцию, но могут быть и другие случаи)

Без изменения кода для добавления блока try, как я могу перейти в непосредственное окно и оценить выражения для необработанного исключения?

Ответом, вероятно, будет какая-то магия, о которой я еще не знаю, например ?this.CurrentException или

что-то связанное System.Diagnostics.StackFrame или кто знает.Что-то умное.

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

Это было полезно?

Решение

Вы пробовали установить отладчик, чтобы сломать, когда исключение брошено вместо того, когда он находится в поисках пользователя?

Для этого перейдите в главное меню VS2010 и выберите меню «отладки». Далее выберите «Исключения ...»

Это поднимет диалог, как:Debug - loading= Exceptions.. menu">

Выберите колонку брошенного

Теперь, когда ваше исключение брошено, и вы сможете оценить свои локальные переменные в непосредственном окне.

На вкладке местных жителей я вижу переменную $ исключения:Local variables contains $exception

Я могу использовать переменную "$ Exception" в непосредственном окне:Immediate Window accessing $exception

Обновлять: Также для легкого переключения обработки исключений я рекомендую использовать Удлинитель Visual Studio Exception Breaker, что позволяет переключать разрыв при обработке исключений, включенной и выключенной с панели инструментов вместо того, чтобы просверлить в меню отладки.

Другие советы

Я не знаю о Visual Studio 2010, но в Visual Studio 2012, когда возникает неразрушенное исключение, оно показано в Locals окно с именем $exception.

есть свойство, которое не будет оцениваться в таблице свойств

Если свойство невозможно вычислить, отладчик вам не поможет. как ты видел;следовательно, непосредственное окно будет делать то же самое.

У меня было недопустимое свойство, которое вызывало исключение в VS2010 и приводило к сбою отладчика, когда я пытался его оценить.Нулевые значения, возвращаемые из свойств, были неприятны для отладчика.

Я рекомендую вам пойти old school по этому вопросу и поставить Трассировка.Запись внутри объекта и в других местах и ​​вместо этого отслеживайте отчеты о записи в окне вывода.

Как отслеживать и отлаживать в Visual C#

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top