User Guide
cfcatch 65
Attributes
Usage
You must code at least one cfcatch tag within a cftry block. Put cfcatch tags at the end of a
cftry block. ColdFusion MX tests cfcatch tags in the order in which they appear. This tag
requires an end tag.
If
type="any", ColdFusion MX catches exceptions from any CFML tag, data source, or external
object. To get the exception type use code such as the following:
#cfcatch.type#
Applications can use the cfthrow tag to throw developer-defined exceptions. Catch these
exceptions with any of these
type options:
• "custom_type"
• "Application"
• "Any"
The custom_type type is a developer-defined type specified in a cfthrow tag. If you define a
custom type as a series of strings concatenated by periods (for example,
"
MyApp.BusinessRuleException.InvalidAccount"), ColdFusion MX can catch the custom
type by its character pattern. ColdFusion MX searches for a
cfcatch tag in the cftry block with
a matching exception type, starting with the most specific (the entire string), and ending with the
least specific.
For example, you could define a type as follows:
<cfthrow type = "MyApp.BusinessRuleException.InvalidAccount">
If you have the following cfcatch tag, it will handle the exception:
<cfcatch type = "MyApp.BusinessRuleException.InvalidAccount">
Otherwise, if you have the following cfcatch tag, it will handle the exception:
<cfcatch type = "MyApp.BusinessRuleException">
Finally, if you have the following cfcatch tag, it will handle the exception:
<cfcatch type = "MyApp">
You can code cfcatch tags in any order to catch a custom exception type.
If you specify
type = "Application", the cfcatch tag catches only custom exceptions that have
the
Application type in the cfthrow tag that defines them.
Attribute Req/Opt Default Description
type Optional Any • application: catches application exceptions
• database: catches database exceptions
• template: catches ColdFusion page exceptions
• security: catches security exceptions
• object: catches object exceptions
• missingInclude: catches missing include file exceptions
• expression: catches expression exceptions
• lock: catches lock exceptions
• custom_type: catches the specified custom exception type
that is defined in a
cfthrow tag
• searchengine: catches Verity search engine exceptions
• any: catches all exception types