MACROMEDIA COLDFUSION 5-DEVELOPING Develop Manual page 276

Table of Contents

Advertisement

256
function makes using the structure appears, but the change the function makes
using the directly passed array does not affect the array outside the function.
<CFScript>
</CFScript>
<CFOutput>
<!--- The element one is changed --->
<!--- Element two is unchanged because the function got a copy --->
</CFoutput>
Error handling
You can handle errors in custom functions by writing a status variable indicating
success or failure and some information about the failure. You can also return a
special value to indicate failure. The following sketch outlines possible combinations
of both these approaches:
function bigCalc(x, y, errorInfo)
{
//Create a two-element array inside a structure
mystruct = StructNew();
mystruct.myarray = ArrayNew(1);;
mystruct.myarray[1] = "This is the original element one";
mystruct.myarray[2] = "This is the original element two";
//Define a custom function to manipulate both
//an array in a structure (using struct_param) and
//an array that is passed directly (using array_param).
function setarray( struct_param, array_param )
{
//Change the first element of the array passed in the structure
struct_param.myarray[1] = "This is the NEW element one";
//Change the seond element of the directly-passed array
array_param[2] = "This is the NEW element two";
return "success";
}
//Call the function passing the structure and the array
setarray( mystruct, mystruct.myarray);
<br>#mystruct.myarray[1]#
<br>#mystruct.myarray[2]#
// Clear error state
// This allows errorInfo struct to be reused
structClear(errorInfo);
var isOK = true;
// Do work, populate fields in errorInfo such as
// errorNumber, errorMsg, errorDetail, whatever
...
if (isOK)
{
return calculatedValue;
Chapter 13 Extending ColdFusion Pages with CFML Scripting

Advertisement

Table of Contents
loading

This manual is also suitable for:

Coldfusion 5

Table of Contents