如何最好地从 Worklight 过程中“返回错误”?
Posted
技术标签:
【中文标题】如何最好地从 Worklight 过程中“返回错误”?【英文标题】:How best to "return an error" from a Worklight procedure? 【发布时间】:2013-12-04 11:25:57 【问题描述】:我用几个简单的程序编写了一个适配器。在某些情况下,我需要向呼叫者发出出现问题的信号。我尝试了几种方法..
抛出异常:异常文本通过 onFailure 回调返回给调用者(很棒),但包含在异常的模块名称和行号中。 TMI。
返回 isSuccessful = false 的对象:这就像一个魅力,它通过 onFailure 回调传递给调用者。
例如:
return
isSuccessful: false,
errors: ["No servers available"]
;
This article from IBM 但是明确警告不要这样做,虽然没有描述替代方案 - 你可以吗?
【问题讨论】:
为了它的价值,我会做以下事情。服务器:return error: "No servers available"
,客户端:if (response.error) /*handle error*/ else /* handle success*/
。这个想法是创建一个自定义错误对象(如您的示例中)并在成功案例之前检查失败案例(该自定义错误对象存在)。使用您想要的任何键,而不是 Worklight 使用的键(即 isSuccessful
),因为在以后的版本中行为可能会发生变化。
除了to the blog post you've found,我还要看看最近发表的另一篇题为Handling Backend Responses in Adapters的博文。通过第二篇博文,您应该更好地了解如何在 Worklight Adapters 中最好地“返回错误”。
【参考方案1】:
您看过这篇博文吗?https://www.ibm.com/developerworks/community/blogs/worklight/entry/handling_backend_responses_in_adapters?lang=en
博文详情:
对于invokeProcedure
(客户端到适配器):
对于invokeHttp
(适配器到服务器):
根据您将在响应客户端中提供的条件,您可以更清楚地返回错误。
【讨论】:
以上是关于如何最好地从 Worklight 过程中“返回错误”?的主要内容,如果未能解决你的问题,请参考以下文章
如何最好地从 Java/JDBC 中的 SQL 查询中检索 SELECT COUNT(*) 的结果 - Long?大整数?
如何使用自定义 IN 参数在 IBM Worklight SQL 适配器中调用存储过程