рефакторинг тега cferror в onError() в application.cfc

Как перевести

<cferror type="EXCEPTION" template="ErrorTemplate.cfm">

к функции onError() для Application.cfc? Обратите внимание, что cferror создает структуру var error для шаблона. Есть ли быстрый и простой способ создать ту же структуру ошибок? Как передать это в ErrorTemplate.cfm, используя <cfinclude>?

Я знаю, что onRequest() разделяет область переменных с целевой страницей, но разделяет ли onError область переменных? Если нет, то что мне делать? Приклеить его к прицелу Form?

Спасибо


person Henry    schedule 18.08.2011    source источник
comment
наткнулся на ketanjetty.com/coldfusion/basics/error-handling и говорит, что если вы используете Application.cfc, лучше всего использовать теги CFERROR в методе onRequestStart(). В самом деле?   -  person Henry    schedule 18.08.2011
comment
Странный. Это действительно работает? (сейчас проверить не могу). Я всегда думал, что его нужно разместить вне функций в Application.cfc.   -  person Leigh    schedule 18.08.2011


Ответы (2)


Согласно http://livedocs.adobe.com/coldfusion/8/htmldocs/appFramework_15.html

Рассмотрите возможность замены тегов cferror методом события onError. Если вы этого не сделаете, поместите теги cferror в код инициализации CFC.

Согласно http://www.coldfusionjedi.com/index.cfm/2007/12/5/The-Complete-Guide-to-Adding-Error-Handling-to-Your-ColdFusion-Application

Что делать, если вы используете Application.cfc? Следует помнить, что вы можете так же легко поместить теги CFERROR в свой файл Application.cfc. Это разрешено, и я делал это раньше.

person Henry    schedule 18.08.2011

Почему бы вам просто не использовать onError в App.cfc для отображения страницы типа «Извините, произошла ошибка, мы работаем над этим»?

person OagerMouzer    schedule 18.08.2011
comment
Существующий шаблон ошибки основан на структуре ошибки, предоставленной cferror. - person Henry; 18.08.2011
comment
Сбросьте и отправьте сообщение об ошибке себе в onError. Я также отправляю по электронной почте URL-адрес, cgi, сеанс и переменную приложения onError, чтобы убедиться, что я исправляю проблемы, когда они возникают. - person OagerMouzer; 25.08.2011