To help with debugging, use tags in your ColdFusion page or component to return error messages to the Flash Player. For example, the ColdFusion page, causeError.cfm, contains the code:
<cftry>
<cfset dev = Val(0)>
<cfset Flash.Result = (1 / dev)>
<cfcatch type = "any">
<cfthrow message = "An error occurred in this service: #cfcatch.message#">
</cfcatch>
</cftry>
The second cfset tag in this example fails because it tries to divide by zero (0). The message attribute of the cfthrow tag describes the error; ColdFusion returns this attribute to the Flash application.
To handle the error in your Flash application, create a fault handler similar to causeError_Fault in the following example:
import mx.remoting.*;
import mx.services.Log;
import mx.rpc.*;
// Connect to service and create service object
var CFMService:Service = new Service(
"http://localhost/flashservices/gateway",
null,
"helloExamples",
null,
null );
// Call the service causeError() method
var pc:PendingCall = CFMService.causeError();
// Tell the service what methods handle result and fault conditions
pc.responder = new RelayResponder( this, "causeError_Result", "causeError_Fault" );
function causeError_Result(re:ResultEvent)
{
// Display successful result
messageDisplay.text = re.result;
}
function causeError_Fault(fe:FaultEvent)
{
// Display fault returned from service
trace("Error message from causeError is: " + fe.fault.description);
}
This example displays the trace message from the causeError_Fault function in the Flash Output panel. The portion of the message that is contained in fe.fault.description is the portion of the message that is contained in #cfcatch.message# in the causeError.cfm page.