CFRETHROW |
Description
Rethrows the currently active exception. Preserves the exception's cfcatch.type and cfcatch.tagContext variable values.
Category
Exception handling tags, Extensibility tags
Syntax
    <cfrethrow>
See also
cferror, cfthrow, cftry
Usage
Use this tag within a cfcatch block. This tag is useful in error handling code, if the error handler cannot handle an error that it catches. For example, if cfcatch type = "any" gets a DATABASE exception, and the code is designed to handle only CFX exceptions, the handler raises the exceptions again, with details intact, so that a higher-level handler can process the error information. If you used the cfthrow tag, the type and details of the original exception would be lost.
Example
    <h3>cfrethrow Example</h3>
    <!--- Rethrow a DATABASE exception. --->
    <cftry>
       <cftry>
          <cfquery name = "GetMessages" dataSource = "cfsnippets">
             SELECT  *
             FROM   Messages
          </cfquery>
       <cfcatch type = "DATABASE">
          <!---- If database signalled a 50555 error, ignore; otherwise rethrow
    exception. ---->
          <cfif cfcatch.sqlstate neq 50555>
             <cfrethrow>
          </cfif>
       </cfcatch>
       </cftry>
    <cfcatch>
       <h3>Sorry, this request can't be completed</h3>
       <h4>Catch variables</h4>
       <cfoutput>
          <cfloop collection = #cfcatch# item = "c">
             <br>
             <cfif IsSimpleValue(cfcatch[c])>#c# = #cfcatch[c]#
             </cfif>
          </cfloop>
       </cfoutput>
    </cfcatch>
    </cftry>