如何在flex中使用自定义java异常?

如何在flex中使用自定义java异常?,java,apache-flex,exception,blazeds,Java,Apache Flex,Exception,Blazeds,我有几个用Java创建的自定义异常。我使用BlazeDs将java与Flex连接起来。现在我需要在Flex中使用这些自定义异常。我该怎么做?实际上,我正在尝试调用java中的方法,并在Flex中抛出这些自定义异常。通常在进行远程调用时,您会侦听ResultEvents,其中包含服务发送的数据。但是,如果服务器抛出错误,这将导致被调度。该事件包含原始Java异常的信息 例如,我们可以这样调用服务: var token:AsyncToken = myRemoteObject.myMethod();

我有几个用Java创建的自定义异常。我使用BlazeDs将java与Flex连接起来。现在我需要在Flex中使用这些自定义异常。我该怎么做?实际上,我正在尝试调用java中的方法,并在Flex中抛出这些自定义异常。

通常在进行远程调用时,您会侦听
ResultEvent
s,其中包含服务发送的数据。但是,如果服务器抛出错误,这将导致被调度。该事件包含原始Java异常的信息

例如,我们可以这样调用服务:

var token:AsyncToken = myRemoteObject.myMethod();
token.addResponder(new Responder(handleResult, handleFault));

private function handleFault(event:FaultEvent):Function {
    trace(event.fault.rootCause);
}

如果您的自定义异常是在Java extend RunTimeException类中创建的,那么您只需从Java端代码中抛出它们即可。他们将点击相关的故障处理程序。您可以检查以下内容:并且。

Flex将接收Java方法返回的任何内容。然而,异常将中断正常的执行流,并且通常抛出异常不会收到响应。除非您在Java中捕获该异常并向Flex返回一些特殊的“异常”对象。如果您使用sprin blazeds集成,请查看此[link][/link]我没有处理Java,但是我认为FaultEvents仅在连接出现问题(如跨域相关问题)时才会触发?Flex如何知道异常返回值和成功返回值之间的区别?@www.Flextras.com抱歉,我不知道它是如何知道的。我只知道它确实如此,至少在Java/BlazeDS中是如此。@Flextras这是一个相当简单的机制:BlazeDS通道端点捕获运行时Java异常,因此总是返回一个有效的响应——异常信息被封装在其中。在AS端,如果响应包含任何错误,则会对信息进行解码并发送FaultEvent。不过,有点恼人的是,故障代码和异常消息存储在FaultEvent中的不同数据字段中,具体取决于异常发生的时间和地点。因此,您可能会得到一个FaultEvent,但
event.fault.rootCause
可能包含
null
。确保您验证了要对其作出反应的特定异常的数据。