ColdFusion 9.0 Resources |
onErrorSyntax<cffunction name="onError" returnType="void"> <cfargument name="Exception" required=true/> <cfargument name="EventName" type="String" required=true/> ... </cffunction> See alsoMethod summary, Handling errors in Application.cfc in the Developing ColdFusion Applications ParametersColdFusion passes the following parameters to the method:
UsageUse this method to handle errors in an application-specific manner. This method overrides any error handlers that you set in the ColdFusion 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:
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 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 Administrator, and ColdFusion 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. Example<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> |