3

我正在使用 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,但尽管错误消息显示View -> Output在 Visual Studio 的输出窗口 ( ) 中,但从未输入 catch。

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

4

2 回答 2

12

我假设当您说“第一次机会异常”时,您的意思是输出到调试控制台的消息?每当抛出异常时,都会输出该消息。异常可能会被代码捕获并处理,并且不允许向上传播。TweetSharp 可能会在其代码中捕获此异常并以某种方式进行处理,因此它永远不会到达您的catch

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

于 2012-05-22T21:02:08.540 回答
1

真的,我在寻找别的东西,但这让我眼花缭乱。如果您打算重新抛出异常,那么您想替换它

catch (WebException e) { throw e; }

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

catch (WebException e) { throw; }
于 2014-02-24T16:54:46.840 回答