Handling exceptions

ColdFusion provides two statements for exception handling in CFScript: try and catch. These statements are equivalent to the CFML cftry and cfcatch tags.

Note:   This section does not explain exception handling concepts. For a discussion of exception handling in ColdFusion, see Chapter 14, "Handling Errors".

Exception handling syntax and rules

Exception-handling code in CFScript has the following format:

try
{
  Code where exceptions will be caught
}
catch(exceptionType exceptionVariable)
{
  Code to handle exceptions of type exceptionType 
  that occur in the try block
}
... 
catch(exceptionTypeN exceptionVariableN)
{
  Code to handle exceptions of type 
  exceptionTypeN that occur in the try block
}

Note:   In CFScript, catch statements follow the try block; you do not put them inside the try block. This structure differs from that of the cftry tag, which must include the cfcatch tags in its body.

When you have a try statement, you must have a catch statement. In the catch block, the exceptionVariable variable contains the exception type. This variable is the equivalent of the cfcatch tag cfcatch.Type built-in variable.

Exception handling example

The following code shows exception handling in CFScript. It uses a CreateObject function to create a Java object. The catch statement executes only if the CreateObject function generates an exception. The displayed information includes the exception message; the except.Message variable is the equivalent of calling the Java getMessage method on the returned Java exception object.

<cfscript>
  try
  {
    emp = CreateObject("Java", "Employees");
  }
  catch(Any excpt)
  {
    WriteOutput("The application was unable to perform a required operation.<br>
Please try again later.<br>If this problem persists, contact
Customer Service and include the following information:<br>
      #excpt.Message#<br>");
  }
</cfscript>

Comments