I was experimenting with a new method 'onAbort' introduced in ColdFuion 10 which can be defined in an Application.cfc file. This method is invoked when cfabort is called. What if showerror attribute is also present in the cfabort tag? Would it still invoke the onAbort method and then onError? The onAbort method would be ignored and the onError method would be invoked. Even in a case wherein the onError method is not defined in Application.cfc, the onAbort method wouldn't be invoked. In this case the error message would be shown on the standard error template.
Application.cfc:
Application.cfc:
<cfcomponent>
<cffunction name="onError"
access="public"
returntype="void"
output="false"
hint="I handle any uncaught exceptions.">
<cfreturn/>
</cffunction>
<cffunction name="onAbort"
access="public"
returntype="void"
hint="Hanldes Aborted request">
<cfargument type="String"
name="requestPage"
required=true/>
<cfoutput> Request Page: #requestPage#</cfoutput>
<!--- do stuff --->
</cffunction>
</cfcomponent>
Now when the cfabort tag is executed, the onAbort method would be invoked. If the showerror attribute is present in the cfabort tag (<cfabort showerror="Error!!">), then the onError method would be invoked; ignoring the onAbort method.
Interesting, didn't know about the onAbort for CF10. I'm curious though... in CF9 onRequestEnd would execute after a CFAbort, is this still the case and does onAbort happen before or after the onRequestEnd (if it does)?
ReplyDeleteSee Ben's post on it for CF9 http://www.bennadel.com/blog/2221-CFAbort-And-OnRequestEnd-Behavior-In-ColdFusion-8-And-ColdFusion-9.htm
David, thanks for bringing this up. In CF10, the onRequestEnd method will not be invoked when cfabort is executed. Also this method is not invoked when cflocation and cfcontent is executed.
ReplyDeleteI've posted this change in behavior
ReplyDeletehttp://www.sagarganatra.com/2012/02/coldfusion-10-onabort-and-onrequestend.html