C #: При отладке в улове вы можете получить неявно объявленное исключение? - PullRequest
2 голосов
/ 09 сентября 2009

Это предупреждение компилятора и, как правило, осуждается наличие неиспользуемых переменных в вашем коде. Поэтому следующее генерирует предупреждение, потому что e не используется

try {
  throw new InvalidOpreationException();
}
catch(Exception e) {
}

Правильный способ сделать это - не давать исключению имя, если вы не собираетесь его использовать:

try {
  throw new InvalidOpreationException();
}
catch(Exception) {
}

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

Кикер в том, что это исключение все еще существует, просто у него нет явного имени в этой области. Есть ли способ получить к нему доступ в любом случае?

Ответы [ 2 ]

16 голосов
/ 09 сентября 2009

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

Я проверил, что это работает с Visual Studio 2008 и более поздними версиями.

EDIT

Этот тип функции известен как псевдопеременный в отладчике Visual Studio.Вы можете получить полный список (с разбивкой по языкам) в следующем месте.

0 голосов
/ 09 сентября 2009

предупреждение компилятора есть, потому что вы объявляете, что переменная ведьма не используется. Если вам нужно, сделайте что-нибудь с этим, и потепление исчезнет (например, зарегистрируйте ошибку в текстовом файле)

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