User Guide

cfthrow 339
Usage
Use this tag within a cftry block, to throw an error. The cfcatch block can access
accompanying information, as follows:
Message, with cfcatch.message
Detail, with cfcatch.detail
Error code, with cfcatch.errorcode
To get more information, use
cfcatch.tagContext. This array shows where control switches
from one page to another in the tag stack (for example,
cfinclude, cfmodule).
To display the information displayed by
tagContext: in the ColdFusion MX Administrator,
Debugging page, select Enable CFML Stack Trace.
Using the object parameter To use this tag with the object parameter, you must first use a
cfobject tag that specifies a valid Java exception class. For example, the following cfobject tag
defines an object, obj, of the exception class myException (which you must create in Java):
<cfobject
type="java"
action="create"
class="myException"
name="obj">
If your exception class has constructors that take parameters, such as a message, you can use the
special
init method to invoke the constructor, as in the following line. If you do not need to
specify any constructor attributes, you can omit this step.
<cfset obj.init("You must save your work before preceding")>
You can then use the, the cfthrow statement to throw the exception as follows:
<cfthrow object=#obj#>
For more information on using Java objects in ColdFusion, see Chapter 33, “Integrating J2EE
and Java Elements in CFML Applications,”in Developing ColdFusion MX Applications.
Example1
<h3>cfthrow Example</h3>
<!--- open a cftry block --->
<cftry>
<!--- define a condition upon which to throw the error --->
<cfif NOT IsDefined("URL.myID")>
<!--- throw the error --->
<cfthrow message = "ID is not defined">
</cfif>
<!--- perform the error catch --->
<cfcatch type = "application">
<!--- display your message --->
<h3>You've Thrown an <b>Error</b></h3>
<cfoutput>
<!--- and the diagnostic feedback from the application server --->
<p>#cfcatch.message#</p>
<p>The contents of the tag stack are:</p>
<cfloop
index = i
from = 1 to = #ArrayLen(cfcatch.tagContext)#>
<cfset sCurrent = #cfcatch.tagContext[i]#>
<br>#i# #sCurrent["ID"]#