2011-11-10 2 views
0

HTTPService을 사용하여 플렉스에서 PHP가 던진 Exception을 catch하는 방법을 찾고 있습니다. AMFPHP을 사용하지 않고 할 수 있습니까?AMFPHP없이 Flex에서 PHP 예외 잡기

현재 구현에서 예외가 PHP에서 발생하면 FaultEvent.FAULT이 실제로 Flex 측에서 전달됩니다. 유일한 문제는 예외의 메시지 문자열이 FaultEvent에 없습니다.

예제의 도움으로 더 잘 설명하겠습니다. 우리가 서버 측에서 다음과 같은 PHP 코드를 가지고 있다고 가정 해 봅시다 : 플렉스 측면에서

<?php 
    throw new Exception("Exception message"); 
?> 

, 위의 PHP 코드를 호출하는 HTTPService 인스턴스가 말한다. 또한, FaultEvent.FAULT에 다음 함수 호출 :

private function onFaultyResult(evt:FaultEvent):void { 
    //How do I get the exception message here?  
} 
나는이 기능에 PHP에서 예외 메시지를 얻을 수있는 방법

?

참고 : trace(evt.toString())을 제공합니다

[FaultEvent fault=[RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request" faultDetail="Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: 192.168.1.119/exception.php"]. URL: 192.168.1.119/exception.php"] messageId="7FF021A3-8C83-CB14-081D-8C8438802204" type="fault" bubbles=false cancelable=true eventPhase=2] 

가 나는 또한 디버거에서 evt의 다른 분야에서 "예외 메시지"를 찾았지만 찾을 수 없습니다.

+0

RTFM : http://help.adobe.com/en_US/FlashPlatform/reference/actionscript /3/mx/rpc/events/FaultEvent.html –

+0

@nikc : 이것은 trace (evt.toString)가 보여주는 것입니다. [FaultEvent fault = [RPC 오류 faultString = "HTTP 요청 오류"faultCode = "Server.Error. 요청 "faultDetail ="오류 : [IOErrorEvent type = "ioError"bubbles = false cancelable = false eventPhase = 2 text = "오류 # 2032 : 스트림 오류. URL : http://192.168.1.119/flex_ssh2_exception.php "] URL : http://192.168.1.119/flex_ssh2_exception.php"] messageId = "07CC2B64-D064-8EB3-CF6D-8C74D4BE7125"type = "fault"거품 = false cancelable = true eventPhase = 2] –

답변