2013-12-22 122 views

回答

0

對於.NET SDK請啓用請求/響應日誌。將不良異常的詳細信息保存在這些文件中。 https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0150_ipp_.net_devkit_3.0/logging

+0

所以,如果沒有日誌,那麼你不能找出是什麼原因造成的? – QuickBooksDev

+0

是的,服務端錯誤是這樣的 –

+0

我使用的是.Net,但是在創建帶折扣的發票時試圖找出爲什麼我要壞請求時,日誌記錄沒有幫助。見下文。仍然不知道是什麼導致了ValidationException。 Intuit.Ipp.E​​xception.IdsException:BadRequest ---> Intuit.Ipp.E​​xception.ValidationException:拋出ValidationException。 – QuickBooksDev

1

我在深入瞭解產生的異常時發現了這一點。

一般來說,你會得到一個異常,你檢查內部異常對象是不是null或沒有,如果它有一個內部異常,你看它。

你會發現,每一個異常也有一個被稱爲「InnerExceptions」(複數)屬性,它是包含在內的例外列表,此屬性將是無效的,當你有一個適當的內部異常,但在最後一節(在我的情況下)當內部異常屬性爲空時,此列表包含一個內部異常,其細節爲

該屬性可以用Intuit.Ipp.E​​xception.IdsException和含有IdsError

我使用的是IPP的.Net SDK 3.0 API列表(2.0.2.0版本)

3
  catch (Intuit.Ipp.Exception.IdsException ex) 
      { 
       //TODO: handle dupe or other.... 
       var returnMessage = string.Empty; 
       var innerException = ((Intuit.Ipp.Exception.ValidationException)(ex.InnerException)).InnerExceptions.FirstOrDefault(); 
       if (innerException != null) 
       { 
        returnMessage = innerException.Message; 
       } 
      } 
0

只需收集來自Quickbook API的錯誤消息。使下面的第一個catch塊聲明:

catch (Intuit.Ipp.Exception.IdsException ex) 
{ 
    string errorMessage = (((Intuit.Ipp.Exception.ValidationException)(ex.InnerException)).InnerExceptions.FirstOrDefault() ?? new Exception()).Message; 
    // you can further log the error . 
}