2016-05-21 9 views
0

Ich erforsche gerade meine erste Third Party Lib und alles funktioniert gut, außer dass es mich einen Fehler werfen sollte wenn etwas nicht stimmt was es nicht tut ..Warum gibt mein Code mir keinen Fehler?

Also das ist mein Code, und ich ' Ich habe versucht, einen Fehler zu verursachen und es sollte einen Fehler verursachen, aber es ist nicht, die App läuft noch

Wenn ich einen Buchstaben oder eine Nummer aus dem Verbraucher Schlüssel zum Beispiel entfernen, es verbindet nicht und es sollte mir einen Fehler werfen.

Ich war auf der Suche über die Dokumentation und ich habe versucht, diese Es ist nicht eine Ausnahme zu werfen

Destroying a Friendship

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

Was soll schief gehen? – Shon

+0

Sie laufen Ihr Programm im 'Release' Modus oder' Debug' Modus? –

+3

Wenn Sie Bibliotheken von Drittanbietern verwenden, müssen Sie die [Dokumentation] (https: // github.com/linvi/tweetinvi/wiki/Exception-Handling), um Ihre Erwartungen an die Realität zu bestätigen. Standardmäßig schluckt TweetInvi Ausnahmen. Dies sollte angezeigt werden durch 'Tweet.PublishTweet()', das 'null' zurückgibt und' ExceptionHandler.GetLastException() ', das die Ausnahme enthält. – CodeCaster

Antwort

1

zu folgen, weil es nicht ein werfen ist.

Wenn Sie einen Tweet von Twitter veröffentlichen, sollte er ein Objekt zurückgeben, das Sie untersuchen können. Wenn die publishTweet() - Methode fehlschlägt, wird möglicherweise keine Ausnahme ausgelöst, stattdessen wird ein Antwortobjekt zurückgegeben.

überprüfen Sie dieses Objekt und behandeln Sie entsprechend.

0

Ich bin der Entwickler von Twetinvi und nur um der Klarheit willen ist hier, wie Twetinvi funktioniert.

  • WebException von Twitter geworfen werden durch von ExceptionHandler behandelt Standard. Die Idee einer solchen Funktion ist, dass die meisten Entwickler nicht kümmern warum es fehlgeschlagen ist, aber Vorsicht nur zu wissen , wenn es fehlgeschlagen ist. In diesem Fall sollten Sie den ExceptionHandler Exception Logger verwenden. Wenn eine Ausnahme fehlschlägt, gibt Twetinvi je nach Twitter-Endpunkt ein Null-Objekt oder false zurück.

  • Sie können die ExceptionHandler mithilfe der folgenden Codezeile deaktivieren: ExceptionHandler.SwallowWebExceptions = false;. Wenn Sie dies tun, müssen Sie einen try/catch auf der Tweetinvi-Klasse Tweetinvi.Core.Exceptions.TwitterException verwenden. Sie könnten auch die folgenden Ausnahmen behandeln wollen:

    • TwitterTimeoutException: Die Ausnahme von TweetinviConfig.ApplicationSettings.HttpRequestTimeout wie angegeben ist abgelaufen.
    • TwitterNullCredentialsException und TwitterInvalidCredentialsException wie von Auth.SetUserCredentials() festgelegt.
  • ArgumentException und ArgumentNullException IMMER geworfen werden, wenn einer der Parameter nicht korrekt angegeben ist. In der nächsten Version 0.9.13.0 werden wir die Details solcher Ausnahmen verbessern Find more.

Sie können ein Wiki für die Ausnahmebehandlung in Tweetinvi finden Sie hier:

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