Странная ошибка Visual Studio - повторяющееся исключение - PullRequest
0 голосов
/ 17 июня 2010

Я столкнулся с очень странным поведением при отладке в VS 2010 со службой WCF. Вот фрагмент кода:

public MapFileInfo[] ListFiles(string user, string pass)
{
   return s.ListFiles(user, pass);
}

Я хочу, чтобы в случае сбоя аутентификации всплыло исключение. Однако, что на самом деле происходит в режиме отладки, так это то, что он вызывает s.ListFiles(user, pass). Поэтому для дальнейшего тестирования моей теории, что VS делает что-то подозрительное, я просто сделал следующее:

try
{
   return s.ListFiles(user, pass);
}
catch (SoapHeaderException e)
{
   throw e;
}

И вот, throw e вызывается снова и снова и снова, когда я вступаю в (F8) вместо того, чтобы бросать его в оператор вызова через стек вызовов.

Кто-нибудь испытывал это странное поведение раньше? Я не могу отлаживать приложение из-за этого. Кроме того, я могу просмотреть сервисный код, который, очевидно, выдает исключение и возвращается к оператору вызова (то есть s.ListFiles), поэтому я знаю, что это происходит.

1 Ответ

0 голосов
/ 17 июня 2010

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

Итак, похоже, что у вас нет обработчика исключений в вызывающей функции ListFiles.

Если вам нужен универсальный обработчик ошибок во всем приложении, добавьте обработчики к событиям AppDomain.CurrentDomain.UnhandledException и Application.ThreadException.

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