System.dll中发生了'System.Net.WebException'类型的第一次机会异常

时间:2012-05-22 18:16:19

标签: c# visual-studio-2010 debugging

我正在使用TweetSharp为用户查找关注者。

以下是代码:

public static void FindFollowersForUser(TwitterUserModel twitterUser)
{
    try
    {
        var followers = service.ListFollowersOf(twitterUser.TwitterName, -1);
        if (followers == null) return;
        while (followers.NextCursor != null)
        {
            var foundFollowers = service.ListFollowersOf(twitterUser.TwitterName, (long)followers.NextCursor);
            if (foundFollowers == null) continue;

            Debug.WriteLine("Followers found for: " + twitterUser.TwitterName);
            foreach (var follower in foundFollowers)
            {
                twitterUser.Followers.Add(follower.ScreenName);
            }
        }
    }
    catch (WebException e)
    {
        throw e;
    }
}

我尝试在try / catch中包装代码,以捕获被触发的WebException错误并查看它的InnerException,但是尽管输出窗口中显示了错误消息,但仍未输入catch(View -> Output )在Visual Studio中。

我怎样才能看到这个破坏错误的内在异常?这是我第一次看到调试器在触发异常时没有触发catch。

2 个答案:

答案 0 :(得分:12)

我假设你说“第一次机会异常”是指输出到Debug控制台的消息?无论何时抛出异常,都会输出该消息。该异常可能被代码捕获并被处理,并且不允许在堆栈中传播。 TweetSharp可能会在其代码和处理中以某种方式捕获此异常,因此它永远不会到达您的catch

这是正常的,只有调试器才会显示此消息。如果这在某种程度上是您的问题(除了在“输出”窗口中显示的消息),请提供更多详细信息。

答案 1 :(得分:1)

我正在寻找别的东西,真的,但这是我的眼睛。如果您打算重新抛出异常,那么您想要替换此

catch (WebException e) { throw e; }

这样你就不会搞乱堆栈跟踪。

catch (WebException e) { throw; }