我正在使用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。
答案 0 :(得分:12)
我假设你说“第一次机会异常”是指输出到Debug控制台的消息?无论何时抛出异常,都会输出该消息。该异常可能被代码捕获并被处理,并且不允许在堆栈中传播。 TweetSharp可能会在其代码和处理中以某种方式捕获此异常,因此它永远不会到达您的catch
块
这是正常的,只有调试器才会显示此消息。如果这在某种程度上是您的问题(除了在“输出”窗口中显示的消息),请提供更多详细信息。
答案 1 :(得分:1)
我正在寻找别的东西,真的,但这是我的眼睛。如果您打算重新抛出异常,那么您想要替换此
catch (WebException e) { throw e; }
这样你就不会搞乱堆栈跟踪。
catch (WebException e) { throw; }