出于某种原因,一段在*.cfm页面上正常工作并且在a中工作正常的代码*.cfc现在在检测到错误时抛出错误.
错误是:
Element SQL is undefined in CFCATCH.
Run Code Online (Sandbox Code Playgroud)
这个抛出的代码块看起来像这样:
<cfcatch type="database">
<cfset errorMessage = "
<p>#cfcatch.message#</p>
<p>Please send the following to a developer:</p>
<p>#cfcatch.SQL#</p> <--- ERROR HERE
<p>#cfcatch.queryError#</p>
<p>#cfcatch.Where#</p>">
some other stuff
</cfcatch>
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
UPDATE
使用@BenKoshy建议,我修改了我的<cfcatch>陈述.
还记得KISS吗?保持简单愚蠢
使用他的方法,然后修改它,我得到的数据比我使用的更多,所以我选择了一个简单的版本,它的工作方式与广告一样.
<cfif isDefined("cfcatch.message")>
<cfset errorMessage = errorMessage & "<p>#cfcatch.message#</p>">
</cfif>
<cfif isDefined("cfcatch.SQL")>
<cfset errorMessage = errorMessage & "<p>Please send the following to a developer:</p><p>#cfcatch.SQL#</p>">
</cfif>
<cfif isDefined("cfcatch.QueryError")>
<cfset errorMessage = errorMessage & "<p>#cfcatch.queryError#</p>">
</cfif>
<cfif isDefined("cfcatch.Where")>
<cfset errorMessage = errorMessage & "<p>#cfcatch.Where#</p>">
</cfif>
Run Code Online (Sandbox Code Playgroud)
很好,很容易,它的工作原理.吻
只是意味着错误数据不包含SQL语句.不应该假设所有错误都存在变量:
<cfif isDefined("cfcatch.sql")>
<p>#cfcatch.SQL#</p>
</cfif>
Run Code Online (Sandbox Code Playgroud)
很容易解决.可能最好循环遍历结构,如下所示:
<cfparam name="errorMessage" default="">
<cfloop collection="#cfcatch#" item="this">
<cfset errorMessage = errorMessage & "<p>#cfcatch[this]#</p>">
</cfloop>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2053 次 |
| 最近记录: |