如何最好地从 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(客户端到适配器):

调用响应是什么样的? isSuccessful 什么时候会成真? isSuccessful 什么时候会是假的?

对于invokeHttp(适配器到服务器):

后端调用响应是什么样的? isSuccessful 什么时候会成真? isSuccessful 什么时候会是假的?

根据您将在响应客户端中提供的条件,您可以更清楚地返回错误。

【讨论】:

以上是关于如何最好地从 Worklight 过程中“返回错误”?的主要内容,如果未能解决你的问题,请参考以下文章

如何最好地从 Java/JDBC 中的 SQL 查询中检索 SELECT COUNT(*) 的结果 - Long?大整数?

如何最好地从浏览器与外围设备交互

我应该如何最好地从 VB.net 查询我的数据集?

如何使用自定义 IN 参数在 IBM Worklight SQL 适配器中调用存储过程

IBM Worklight - 如何使用“OUT”参数调用存储过程?

如何在 Worklight 上自定义直接更新消息?