我目前正在尝试通过在 Application.cfc 中包含以下代码来捕获我的应用程序中的所有错误:
<cffunction name="onError">
<!--- The onError method gets two arguments:
An exception structure, which is identical to a cfcatch variable.
The name of the Application.cfc method, if any, in which the error
happened. --->
<cfargument name="Except" required=true/>
<cfargument type="String" name = "EventName" required=true/>
<!--- Log all errors in an application-specific log file. --->
<cflog file="#THIS.NAME#" type="error" text="Event Name: #Eventname#" >
<cflog file="#THIS.NAME#" type="error" text="Message: #Except.message#">
<!--- Throw validation errors to ColdFusion for handling. --->
<cfif Find("coldfusion.filter.FormValidationException", Arguments.Except.StackTrace)>
<cfthrow object="#Except#">
<cfelse>
<cfoutput>
<h1>#Eventname#</h1>
</cfoutput>
<cfdump var="#Except#">
</cfif>
</cffunction>
其中一些是从我见过的其他例子中借来的(我不完全理解)。我最终想展示某种优雅的错误页面来征求用户的反馈,然后记录/通过电子邮件发送错误。这似乎捕获了很多错误,但不是全部。如果我不需要,我也不想在任何地方使用 try/catch。有什么建议么?