代码之家  ›  专栏  ›  技术社区  ›  Kieran Senior

奇怪的Visual Studio错误-引发了重复出现的异常

  •  0
  • Kieran Senior  · 技术社区  · 15 年前

    我在使用WCF服务在Vs2010中进行调试时遇到了一些非常奇怪的行为。下面是一个片段:

    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;
    }
    

    Lo:看, throw e 当我进入(f8)而不是通过调用堆栈将其抛出给调用语句时,会被多次调用。

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

    1 回复  |  直到 15 年前
        1
  •  0
  •   Bobby    15 年前

    我认为这是所期望的行为。如果不使用异常处理程序,vs将在引发调用时停止并等待您的操作,如果您继续调试,vs将尝试再次调用错误的函数(毕竟,您可能已经更改了一些内容,使其同时消失)。

    因此,您似乎在的调用函数中没有异常处理程序 ListFiles .

    如果要在整个应用程序中使用通用错误处理程序,请将处理程序添加到事件中 AppDomain.CurrentDomain.UnhandledException Application.ThreadException .