Я столкнулся с некоторым очень странным поведением при отладке в VS 2010 с помощью службы WCF. Вот фрагмент:Ошибка Weird Visual Studio - повторяющееся исключение
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, который есть), поэтому я знаю, что это происходит.
Действительно, я все-таки перехватил все исключения, но это действительно показалось мне особенно странным. Я бы ожидал, что будет выбрано исключение. – Kezzer
@ Kezzer: Технически он был брошен. Это был бы тот момент, когда пользователь получает окно «Необработанное исключение», но отладчик, кажется, останавливается прямо там и пытается выполнить неисправный код снова и снова. – Bobby