2016-10-10 14 views
0

なぜ私はFlurl例外を受け取りましたが、try/catchブロックでキャッチされていません。なぜそれが起こっているのかについてのアイデアはありますか?Flurl例外がキャッチされていません

ここでは、コードです:

try 
{ 
    var x = await Utils.Sales.GetUrl() 
     .PostJsonAsync(new Sale 
     { 
      MerchantId = Constants.Sandbox.MerchantId 
     }) 
     .ReceiveJson<Sale>(); 
    var b = x; 
} 
catch (FlurlHttpTimeoutException) 
{ 
    //LogError("Timed out!"); //todo: 
} 
catch (FlurlHttpException ex) 
{ 
    var x = ex.Message; 
    //todo: 
    //if (ex.Call.Response != null) 
    // LogError("Failed with response code " + call.Response.StatusCode); 
    //else 
    // LogError("Totally failed before getting a response! " + ex.Message); 
} 
catch (Exception ex) 
{ 
    var a = ex.Message; 
} 

ここで出力(Iは、例外がスローされている知っている唯一の理由)です:

enter image description here

+0

を多分それがライブラリまたはあなたが呼び出しているメソッド内でキャッチされていますか? –

+0

@MehrzadChehraz申し訳ありませんが、私は理解できませんでした...別の場所で試してみたり、例外が他のライブラリによって処理されていることを示唆していますか? – eestein

+0

@eesteinライブラリが例外をスローし、キャッチして処理している可能性があります。出力ログにはスローされた例外(キャッチされたものを含む)が表示されます – Rob

答えて

0

たぶんこのページはhttps://msdn.microsoft.com/zh-cn/library/jj619227.aspx
申し訳ありませんが役立ちます英語版を持っていない、あなたはそれを翻訳するGoogleを試すことができます。
例外タイプを捕まえたり、コードを待っているのは間違っています。
あなたの例外をキャッチこの方法を試してみてください: `` `

try 
{ 
    await t1; 
} 
catch (AggregateException ex) 
{ 
    var innerEx = ex.InnerExceptions[0]; 
    if (innerEx is NotSupportedException) 
    { 
     ... 
    } 
    else if (innerEx is NotImplementedException) 
    { 
     ... 
    } 
    else 
    { 
     ... 
    } 
} 

` ``

+0

私はそこに書かれていることを理解していませんが、私はコードを理解しています。私はそれが私がやっているのと同じことだと思いますよね? – eestein

+0

あなたのような同じコードは間違ったキャッチの例ですが、以下は正しい方法で例外をキャッチし、この記事では例外を処理する方法をいくつか示します。また、いくつかのthoeseデザインの説明。私はただの読んだだけでいくつかの要約を得る。 – Bucketcode

+0

ありがとうございますが、うまくいきません。 – eestein

関連する問題