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 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.
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>