Runs when an uncaught exception occurs in the application.
<cffunction name="onError" returnType="void"> <cfargument name="Exception" required=true/> <cfargument name="EventName" type="String" required=true/> ... </cffunction>
Method summary, Handling errors in Application.cfc in ColdFusion MX Developer's Guide
ColdFusion MX passes the following parameters to the method:
Parameter | Description |
---|---|
Exception |
The ColdFusion MX Exception object. For information on the structure of this object, see the description of the |
EventName |
The name of the event handler that generated the exception. If the error occurs during request processing and you do not implement an |
This method does not return a value; do not use the cfreturn
tag.
Use this method to handle errors in an application-specific manner. This method overrides any error handlers that you set in the ColdFusion MX Administrator or in cferror tags. It does not override try/catch blocks.
Whether the onError
method can display output depends on where the error takes place, as follows:
onError
method can display a message to the user if an error occurs during an onApplicationStart
, onSessionStart
, onRequestStart
, onRequest
, or onRequestEnd
event method, or while processing a request.
onError
method cannot display output to the user if the error occurs during an onApplicationEnd
or onSessionEnd
event method, because there is no available page context; however, it can log an error message.
If the onError
event handler is triggered by a scope-specific event method, such as onSessionStart
, the error prevents further processing at the level of that scope and any lower scopes. An onError
event triggered by an onSessionStart
method, for example, prevents further processing in the session, but not in the application.
If an exception occurs while processing the onError
method, or if the onError
method uses a cfthrow
tag, the ColdFusion MX standard error handling mechanisms handle the exception. These mechanisms include: any error handlers specified by cferror
tags in the Application.cfc initialization code, the site-wide error handler specified in the ColdFusion MX Administrator, and ColdFusion MX default error page. Therefore, you can use the onError
method as a filter to handle selected errors, and use other ColdFusion error-handling techniques for the remaining errors.
<cffunction name="onError"> <cfargument name="Exception" required=true/> <cfargument type="String" name="EventName" required=true/> <!--- Log all errors. ---> <cflog file="#This.Name#" type="error" text="Event Name: #Arguments.Eventname#" > <cflog file="#This.Name#" type="error" text="Message: #Arguments.Exception.message#"> <cflog file="#This.Name#" type="error" text="Root Cause Message: #Arguments.Exception.rootcause.message#"> <!--- Display an error message if there is a page context. ---> <cfif NOT (Arguments.EventName IS "onSessionEnd") OR (Arguments.EventName IS "onApplicationEnd")> <cfoutput> <h2>An unexpected error occurred.</h2> <p>Please provide the following information to technical support:</p> <p>Error Event: #Arguments.EventName#</p> <p>Error details:<br> <cfdump var=#Arguments.Exception#></p> </cfoutput> </cfif> </cffunction>