javascript - 与 onError 和 cferror 相关的 ColdFusion 问题
问题描述
我遇到了一个问题,其中我的 onError 方法不再适用于我的 application.cfc 文件。该程序昨天捕获错误并正确显示 error.cfm,但现在我收到 500 错误。我的经理昨天可能更改了文件中的一些内容,但我们似乎重新创建了它,但没有解决任何问题。
我目前使用onError,但我尝试了cferror。使用 cferror 数据输入表单甚至不会加载。
代码如下。onError 被阻止,因为我用 cferror 代码显示它。如果你想使用它,只需删除 cferror 和 blocks 就会出现 onError:
<!--- this component controls the application's global settings / event
handlers and maintains user sessions --->
<cfcomponent>
<!--- define some basic settings --->
<cfset this.name = "QualityDataPortal" />
<cfset this.sessionManagement = "yes" />
<cfset this.setClientCookies = "no" />
<cfset this.loginStorage = "session" />
<!--- this function is triggered when our application is initialized --->
<cffunction name="onApplicationStart" access="public" returntype="boolean" output="no">
<!--- define application variables --->
<cfset application.dataSource = 'quality' />
<!--- return out --->
<cfreturn true />
</cffunction>
<cferror
template="error.cfm"
type="exception"
mailTo="Generic@org.edu" />
<!--- <!--- this function is triggered when coldfusion encounters an error --->
<cffunction name="onError" access="public" returntype="void" output="no">
<cfargument name="exception" required="yes">
<cfargument name="eventname" type="string" required="yes">
<!--- send a dump of the error via email --->
<cfmail from="QDP@org.edu" to="Generic@org.edu" subject="Quality Data Portal Error Encountered" type="html">
<cfoutput>
The following error was encountered on #dateformat(now(), 'dddd mmmm dd, yyyy')# at #timeformat(now(), 'hh:mm:ss tt')#<br /><br />
<cfdump var="#arguments.exception#">
<cftry><cfdump var="#arguments#"><cfcatch></cfcatch></cftry>
<cfdump var="#form#">
<cfdump var="#session#">
<cfdump var="#cgi#">
</cfoutput>
</cfmail>
<!--- alert the user that an error has been encountered --->
<cflocation url="error.cfm" addtoken="no">
<cfabort />
</cffunction> --->
<!--- this function is triggered when coldfusion receives a request for a template it cannot locate --->
<cffunction name="onMissingTemplate" access="public" returntype="void" output="no">
<cfargument name="targetPage" type="string" required="yes">
<!--- alert the user that the page they requested could not be found --->
<cflocation url="404.cfm" addtoken="no">
<cfabort />
<!--- return out --->
<cfreturn />
</cffunction>
</cfcomponent>
解决方案
我建议您删除未使用的代码(cferror 标签),删除不必要的注释,不要嵌套注释,以便您看得更清楚。
然后,从这段代码开始onError
<cffunction name="onError" returntype="void" output="false">
<cfargument name="exception" required="true">
<cfargument name="eventname" type="string" required="true">
<cfmail to="Generic@org.edu" from="QDP@org.edu" subject="Quality Data Portal Error Encountered" type="html">
<cfoutput>The following error was encountered on #DateFormat(now(), "dddd, mmmm dd, yyyy")# at #TimeFormat(now(), "HH:nn:ss")#</cfoutput>
<hr />
<cfdump var="#exception#" label="Exception" />
<cfdump var="#form#" label="Form" />
<cfdump var="#session#" label="Session" />
<cfdump var="#cgi#" label="CGI" />
</cfmail>
<cflocation url="error.cfm" addtoken="false" />
</cffunction>
笔记:
- 注意:
#timeformat(now(), 'hh:mm:ss tt')
,它应该使用nn
几分钟而不是mm
。 - 之后没有代码,
<cflocation ...
因为 ColdFusion 不会运行它。
停止执行当前页面并打开 ColdFusion 页面或 HTML 文件。(https://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7cac.html)
推荐阅读
- python - 查找第一次出现的用户并为其赋值
- java - 如何修复随机数组中的这个错误
- excel - Excel VBA 代码性能极慢
- python - BigQuery:此表的表 dml 插入操作过多
- animation - Flutter Widget Test 等待动画
- javascript - 如何在同一行 Qweb 报告上对齐 div。奥多 14
- c# - 如何使用 Include - ThenInclude 查询 IQueryable?
- android - Android WifiP2pManager 发现 - 无法缩小问题范围
- prolog - prolog中命题逻辑的困难
- c# - 如何将值从文本文件传递到 DataGrid?C#WPF