为什么我的代码没有给我抛出错误?



我目前正在探索我的第一个第三方库,一切正常,除了当出现问题时它应该给我抛出一个错误,而它没有。

所以这是我的代码,我尝试导致错误,它应该导致错误,但事实并非如此,该应用程序仍在运行

例如,当我从使用者密钥中删除字母或数字时,它无法连接,并且应该会给我一个错误。

我正在查看文档,我试图遵循这个

破坏友谊

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

}
}
}

它不会抛出异常,因为没有要抛出的异常。

当你从Twitter发布推文时,它应该返回一个你可以检查的对象。如果 publishTweet() 方法失败,它可能不会抛出异常,而是返回一个响应对象。

检查该对象并相应地进行处理。

我是Tweetinvi的开发者,为了清楚起见,这里是Tweetinvi的工作方式。

  • 推特抛出的WebException默认由ExceptionHandler处理。这种功能的想法是,大多数开发人员并不关心它为什么失败,而只关心它是否失败。在这种情况下,您将需要使用异常记录器ExceptionHandler。当异常失败时,Tweetinvi将返回一个空对象或假,具体取决于Twitter端点。

  • 您可以使用以下代码行禁用ExceptionHandlerExceptionHandler.SwallowWebExceptions = false;。这样做时,您必须在 Tweetinvi 类Tweetinvi.Core.Exceptions.TwitterException上使用try/catch.您可能还需要处理以下异常:

    • TwitterTimeoutException:异常已按TweetinviConfig.ApplicationSettings.HttpRequestTimeout指定超时。
    • TwitterNullCredentialsExceptionTwitterInvalidCredentialsExceptionAuth.SetUserCredentials()设置。
  • 如果您指定的参数之一不正确,将始终抛出ArgumentExceptionArgumentNullException。在下一个版本 0.9.13.0 中,我们将改进此类异常的详细信息 查找更多。

您可以在Tweetinvi中找到异常处理的wiki 这里:

https://github.com/linvi/tweetinvi/wiki/Exception-Handling

尝试此代码,看看您的用户是否已通过身份验证。如果不是,则必须是权限或您的密钥错误:

ITwitterCredentials creds = new TwitterCredentials(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
Auth.SetCredentials(creds);
var authenticatedUser = User.GetAuthenticatedUser(creds);

相关内容

  • 没有找到相关文章

最新更新