奇怪的Visual Studio Bug - 重复的异常抛出

时间:2010-06-17 11:56:11

标签: wcf visual-studio-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;
}

瞧,当我进入(F8)而不是通过调用堆栈将它抛出到调用语句时,throw e被调用,结束,然后结束。

之前有人经历过这种奇怪的行为吗?因为它,我无法通过我的应用程序进行调试。另外,我可以单步执行明显抛出异常的服务代码并返回到调用语句(s.ListFiles),所以我知道这种情况正在发生。

1 个答案:

答案 0 :(得分:0)

我认为这是理想的行为。如果没有使用Exception-Handler,VS将停止在抛出调用并等待您的操作,如果您继续调试,VS将尝试再次调用错误的函数(毕竟,您可能已经更改了某些内容以使其消失与此同时)。

所以,似乎你在ListFiles的调用函数中没有Exception-Handler。

如果您想在整个应用程序中使用通用错误处理程序,请为事件AppDomain.CurrentDomain.UnhandledExceptionApplication.ThreadException添加处理程序。