2013-12-22 146 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 . 
}