我目前正在探索我的第一个第三方lib,一切都运行良好,除非它出现错误时应该给我一个错误,它不会......
所以这是我的代码,我尝试导致错误并且应该导致错误,但不是,应用仍在运行
例如,当我从消费者密钥中删除一个字母或数字时,它没有连接,它应该给我一个错误。
我正在查看文档而我正在尝试遵循此
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Tweetinvi;
using Tweetinvi.Core.Authentication;
using Tweetinvi.Core;
using Tweetinvi.Credentials;
using Tweetinvi.WebLogic;
namespace Tweetinvi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string accessToken;
string accessTokenSecret;
string consumerKey;
string consumerSecret;
string hashTag;
string userName;
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try
{
Auth.SetUserCredentials(consumerKeyBox.Text, consumerSecretBox.Text, accessTokenBox.Text, accessTokenSecretBox.Text);
Tweet.PublishTweet("Hello World :)");
//User.UnFollowUser("");
}
catch(Exception ex)
{
MessageBox.Show("Something went wrong");
}
}
}
}
答案 0 :(得分:1)
它没有抛出异常,因为没有人抛出。
当您从Twitter发布推文时,它应该返回一个您可以检查的对象。如果publishTweet()方法失败,它可能不会抛出异常,而是返回响应对象。
检查该对象并相应处理。
答案 1 :(得分:0)
我是Tweetinvi的开发者,为了清楚起见,这里是Tweetinvi的工作方式。
WebException
默认由ExceptionHandler
处理。这种功能的想法是,大多数开发人员不关心为什么它失败了,但只关心如果它失败了。在这种情况下,您将需要使用ExceptionHandler
这是一个异常记录器。当异常失败时,Tweetinvi将返回一个空对象或false,具体取决于Twitter端点。
您可以使用以下代码行禁用ExceptionHandler
:ExceptionHandler.SwallowWebExceptions = false;
。这样做时,您必须在Tweetinvi类try/catch
上使用Tweetinvi.Core.Exceptions.TwitterException
。您可能还想处理以下异常:
TwitterTimeoutException
:异常已超时TweetinviConfig.ApplicationSettings.HttpRequestTimeout
。TwitterNullCredentialsException
设置的TwitterInvalidCredentialsException
和Auth.SetUserCredentials()
。 ArgumentException
和ArgumentNullException
。在下一版本0.9.13.0中,我们将改进此类异常的详细信息Find more。
您可以在这里找到Tweetinvi中的异常处理维基:
答案 2 :(得分:0)
尝试此代码,看看您的用户是否已通过身份验证。如果没有,则必须是权限或您的密钥错误:
ITwitterCredentials creds = new TwitterCredentials(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
Auth.SetCredentials(creds);
var authenticatedUser = User.GetAuthenticatedUser(creds);