为什么我的代码没有抛出错误?
Why is my code not throwing me an error?
我目前正在探索我的第一个第三方库,一切正常,除了它应该在出现问题时向我抛出一个错误,但它没有..
这是我的代码,我试过导致错误,它应该会导致错误,但事实并非如此,应用程序仍在运行
例如,当我从消费者密钥中删除一个字母或数字时,它没有连接,应该会抛出一个错误。
我正在查看文档并试图遵循这个
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 发布推文时,它应该 return 一个您可以检查的对象。如果 publishTweet() 方法失败,它可能不会抛出异常,而是 return 一个响应对象。
检查该对象并进行相应处理。
我是 Tweetinvi 的开发者,为了清楚起见,这里介绍了 Tweetinvi 的工作原理。
Twitter 抛出的 WebException
默认由 ExceptionHandler
处理。这种功能的想法是,大多数开发人员不关心为什么它失败了,而只关心知道如果它失败了。在这种情况下,您需要使用 ExceptionHandler
,它是一个异常记录器。当异常失败时,Tweetinvi 将 return 空对象或 false,具体取决于 Twitter 端点。
您可以使用以下代码行禁用 ExceptionHandler
:ExceptionHandler.SwallowWebExceptions = false;
。这样做时,您将不得不在 Tweetinvi class Tweetinvi.Core.Exceptions.TwitterException
上使用 try/catch
。您可能还想处理以下异常:
TwitterTimeoutException
:异常已超时,如 TweetinviConfig.ApplicationSettings.HttpRequestTimeout
所指定。
TwitterNullCredentialsException
和 TwitterInvalidCredentialsException
由 Auth.SetUserCredentials()
设置。
如果您指定的参数之一不正确,ArgumentException
和 ArgumentNullException
将始终被抛出。在下一个版本 0.9.13.0 中我们将改进此类异常的细节Find more。
您可以在此处的 Tweetinvi 中找到异常处理的 wiki :
试试这个代码,看看你的用户是否通过了身份验证。如果不是,那么一定是权限问题或者你的密钥错误:
ITwitterCredentials creds = new TwitterCredentials(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
Auth.SetCredentials(creds);
var authenticatedUser = User.GetAuthenticatedUser(creds);
我目前正在探索我的第一个第三方库,一切正常,除了它应该在出现问题时向我抛出一个错误,但它没有..
这是我的代码,我试过导致错误,它应该会导致错误,但事实并非如此,应用程序仍在运行
例如,当我从消费者密钥中删除一个字母或数字时,它没有连接,应该会抛出一个错误。
我正在查看文档并试图遵循这个
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 发布推文时,它应该 return 一个您可以检查的对象。如果 publishTweet() 方法失败,它可能不会抛出异常,而是 return 一个响应对象。
检查该对象并进行相应处理。
我是 Tweetinvi 的开发者,为了清楚起见,这里介绍了 Tweetinvi 的工作原理。
-
Twitter 抛出的
WebException
默认由ExceptionHandler
处理。这种功能的想法是,大多数开发人员不关心为什么它失败了,而只关心知道如果它失败了。在这种情况下,您需要使用ExceptionHandler
,它是一个异常记录器。当异常失败时,Tweetinvi 将 return 空对象或 false,具体取决于 Twitter 端点。您可以使用以下代码行禁用
ExceptionHandler
:ExceptionHandler.SwallowWebExceptions = false;
。这样做时,您将不得不在 Tweetinvi classTweetinvi.Core.Exceptions.TwitterException
上使用try/catch
。您可能还想处理以下异常:TwitterTimeoutException
:异常已超时,如TweetinviConfig.ApplicationSettings.HttpRequestTimeout
所指定。TwitterNullCredentialsException
和TwitterInvalidCredentialsException
由Auth.SetUserCredentials()
设置。
如果您指定的参数之一不正确,ArgumentException
和ArgumentNullException
将始终被抛出。在下一个版本 0.9.13.0 中我们将改进此类异常的细节Find more。
您可以在此处的 Tweetinvi 中找到异常处理的 wiki :
试试这个代码,看看你的用户是否通过了身份验证。如果不是,那么一定是权限问题或者你的密钥错误:
ITwitterCredentials creds = new TwitterCredentials(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
Auth.SetCredentials(creds);
var authenticatedUser = User.GetAuthenticatedUser(creds);