The TYPE attribute allows a CFTHROW tag to throw an exception of a specific type, which can be caught by a CFCATCH tag that has a matching TYPE attribute.
A CFTHROW tag without a TYPE attribute will throw a TYPE="Application" exception.
A naming convention for custom exception types follows a convention that is similar to Java class naming conventions: domain name in reverse order, followed by project identifiers, as in this example:
<CFTHROW TYPE="COM.Allaire.ProjectName" ERRORCODE="Dodge14B">
The predefined exception types, except for TYPE="APPLICATION" are reserved; for example, <CFTHROW TYPE="Database"> will be rejected.
A CFCATCH tag can specify a custom type as well as one of the predefined types. For example, to catch the exception thrown above, you would use this syntax:
<CFCATCH TYPE="COM.Allaire.ProjectName">
ColdFusion uses the catch type as a pattern to find a catch handler. For example,
<CFTHROW TYPE="MyApp.BusinessRuleException.InvalidAccount">
would try to find:
<CFCATCH TYPE="MyApp.BusinessRuleException.InvalidAccount"> <CFCATCH TYPE="MyApp.BusinessRuleException"> <CFCATCH TYPE="MyApp">
The type comparison is case-insensitive. To match types exactly, rather than performing pattern matching, use the CFSETTING attribute CATCHEXCEPTIONSBYPATTERN=No.