Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将错误从Java转发回Flex/BlazeDS_Java_Apache Flex_Blazeds - Fatal编程技术网

如何将错误从Java转发回Flex/BlazeDS

如何将错误从Java转发回Flex/BlazeDS,java,apache-flex,blazeds,Java,Apache Flex,Blazeds,我们有一个通过BlazeDS与Java后端通信的Flex应用程序 在此之前,如果发生SQL错误,SQL异常将在Flex应用程序中显示为警报,并调用CallResponder的故障处理程序,通知用户出了问题 弹性代码: 呼叫应答器: <s:CallResponder id="loginResult" result="loginResult_resultHandler(event)" fault="displayGenericErrorMessage(event)"/> 旧Java代码

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

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

弹性代码: 呼叫应答器:

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

Map resultSet = simpleJdbcCall.execute();
ArrayList list = (ArrayList) resultSet.get("RESULT_SET");
现在,从上面的代码可以看出,SQL execute语句不在try catch块内(编码错误)。这实际上不会引起太多的麻烦,但我们希望能够将异常打印到错误日志中,并且不管怎样,将execute语句放在try catch块中都是正确的。因此,代码如下所示:

新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块),如果发生异常,异常的消息将被传递回Flex,在Flex中显示为警报,并调用CallResponder的故障处理程序。我们不一定希望异常显示为警报,但是调用错误处理程序是好的,因为它会通知用户出了问题

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

除了删除try-catch块之外,是否还有其他方法向Flex表明调用未成功,并且应该调用故障处理程序


提前感谢。

在服务器端登录异常后,只需重新播放该异常,它将像以前一样进入Flex前端。

谢谢。编辑您的答案,以包括在方法签名中添加抛出的需要,以防它还不存在
ArrayList list = new ArrayList();

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