我正在尝试获取FW/1中的每个子系统错误文件。我知道以下内容不起作用。
variables.framework = {
...
error = getSubsystem() .error',
...
更新
我试过了
<cffunction name="onError">
<cfargument name="Exception" type="Struct" required />
<cfargument name="Event" type="String" required />
<cfif Arguments.Exception.Type EQ 'missinginclude' >
<cfoutput>#layout('#getSubsystem()#:default',view('login/error'))#</cfoutput>
<cfreturn false />
</cfif>
<cfreturn super.onError(ArgumentCollection=Arguments) />
</cffunction>
我得到一个错误:
传递给onError函数的EXCEPTION参数不是Struct类型。
如果将组件名称指定为该参数的类型,则可能找不到或无法访问该组件的定义文件。
The error occurred in /Applications/ColdFusion10/cfusion/wwwroot/Pluma/Application.cfc: line 189
187 : </cffunction>
188 :
189 : <cffunction name="onError">
190 : <cfargument name="Exception" type="Struct" required />
191 : <cfargument name="Event" type="String" required />
最佳答案
您可以做的是重写Application.cfc中的 onError 方法,以手动调用每个子系统的相关文件。
这是一个使用非默认子系统中的布局处理缺少的包含错误的示例:
<cffunction name="onError">
<cfargument name="Exception" type="Struct" required />
<cfargument name="Event" type="String" required />
<cfif Arguments.Exception.Type EQ 'missinginclude' >
<cfoutput>#layout('subsys2:default',view('main:errors/404'))#</cfoutput>
<cfreturn false />
</cfif>
<cfreturn super.onError(ArgumentCollection=Arguments) />
</cffunction>
返回super.onError将导致调用标准错误处理。
为了使其完全按子系统运行,可以执行
view(getSubsystem()&':errors')
或类似的操作。如果您要执行潜在的复杂逻辑,请记住使用适当的try/catch-在错误处理中跟踪错误可能很尴尬。
关于coldfusion - FW/1中的每个子系统错误文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13766975/