gpt4 book ai didi

java - 如何从 Java 将错误中继回 Flex/BlazeDS

转载 作者:行者123 更新时间:2023-11-29 05:49:51 25 4
gpt4 key购买 nike

我们有一个 Flex 应用程序通过 BlazeDS 与 Java 后端通信。

以前,如果发生 SQL 错误,则 SQL 异常将在 Flex 应用程序中显示为警报,并调用 CallResponder 的故障处理程序来通知用户出现了错误。

弹性代码:调用响应者:

<s:CallResponder id="loginResult" result="loginResult_resultHandler(event)" fault="displayGenericErrorMessage(event)"/>

调用服务:

var authenticationMessage:String = loginResult.lastResult as String;

旧 Java 代码:

Map resultSet = simpleJdbcCall.execute();
ArrayList list = (ArrayList) resultSet.get("RESULT_SET");

现在,从上面的代码可以看出,SQL execute 语句不在try-catch block 内(编码错误)。这实际上并没有造成太大的麻烦,但我们希望能够将异常打印到错误日志中,并且无论如何将 execute 语句放在 try-catch block 中是正确的。于是,代码变成了如下:

新的 Java 代码:

ArrayList list = new ArrayList();

try {
Map resultSet = simpleJdbcCall.execute();
list = (ArrayList) resultSet.get("RESULT_SET");
}
catch (Exception e) {
logger.error(e.getMessage());
}

之前(没有 try-catch block ),如果发生异常,异常的消息将传递回 Flex,在那里它显示为警报,并调用 CallResponder 的故障处理程序。我们不一定希望将异常显示为警报,但调用故障处理程序很好,因为它会通知用户出现了问题。

现在(使用 try-catch block ),如果发生异常,将根据需要将异常输出到日志,但不会调用 CallResponder 的故障处理程序。 Flex 认为服务成功返回了一个不正确的 null 值。

除了删除 try-catch block 之外,是否有其他方式向 Flex 指示调用不成功并且应该调用故障处理程序?

提前致谢。

最佳答案

在服务器端记录异常后,只需重新抛出异常,它就会像以前一样传送到 Flex 前端。

关于java - 如何从 Java 将错误中继回 Flex/BlazeDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14357383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com