Файлы ошибок для каждой подсистемы в FW/1

Я пытаюсь получить ошибки подсистемы в 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>

И я получаю ошибку:

Аргумент EXCEPTION, передаваемый в функцию onError, не относится к типу 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 />

1 ответ

Что вы можете сделать, это переопределить метод onError в вашем Application.cfc, чтобы вручную вызывать соответствующие файлы для каждой подсистемы.

Вот пример обработки ошибок missinginclude с макетом в подсистеме не по умолчанию:

<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-tracking при обработке ошибок.

Другие вопросы по тегам