0

Я работаю над старым кодом старого устаревшего кода coldfusion, есть ли способ определить cfcatch в application.cfc и уловить все ошибки моего приложения с помощьюColdfusion как получить имя функции и номер строки при сбое приложения или ошибке

  • название функции
  • имя запроса
  • Номер строки кода
  • имя шаблона

    Для отладки быстро, а затем ВИР все в коде.

разработчик приложения не поймать какую-либо ошибку в любом месте в code.i сделал вставить cfcatch в коде некоторых местах, но еще многое сделать, и из-за производства я не хочу, чтобы изменить так много кода ,

im inserting cfcatch in databse и отправка электронной почты команде разработчиков. потому что система находится в производстве.

+2

Как насчет добавления секции onError в файл Application.cfc и отправки cfdump аргументов? http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d4a.html –

+0

Начните с документации: [Об обработке ошибок в ColdFusion] (http://help.adobe.com/en_US/ColdFusion /9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0bb9b-7ffe.html). Он охватывает возможности обработки ошибок для Application.cfc/cfm. – Leigh

ответ

3

Вы можете использовать тег cferror или onError, чтобы направлять все ошибки на заданную страницу/функцию.

Если вы используете cferror, исключение будет передано в переменной error. Если вы используете OnError, это параметр.

Чтобы помочь вам, мои собственные электронные письма с ошибкой включают следующее. Вы заметите, что у нас есть специальная обработка, чтобы указать места, где пробел может быть передан в целое поле sql, которое происходит чаще, чем я хотел бы признать.

An error occurred: http://#cgi.server_name##cgi.script_name#?#cgi.query_string#<br /> 
Time: #dateFormat(now(), "short")# #timeFormat(now(), "short")#<br /> 

<!--- Smarter error catching for form fields ---> 
<cfif (error.message contains "Invalid data '' for CFSQLTYPE CF_SQL_INTEGER") and isdefined("form")> 
    <!--- This stores a list of the Id fields ---> 
    <cfloop collection="#form#" item="thisField"> 
     <!--- Get the last two characters of the field name ---> 
     <cfset lastTwoChars = right(thisField, 2)> 
     <!--- Get the value of the field ---> 
     <cfset thisFieldValue = evaluate('form.#thisField#')> 
     <!--- Check to see if this is an Id field and if it's value is blank. ---> 
     <cfif lastTwoChars eq 'Id' and thisFieldValue eq ''> 
      <h3 style="font-weight: bold; color: red">#thisField# is blank and it's possibly an integer field.</h3> 
     </cfif> 
    </cfloop> 
</cfif> 

<cfdump var="#error#" label="Error"> 


<br/> 
<cfdump var="#form#" label="Form"> 
<br/> 
<cfdump var="#url#" label="URL"> 
<br/> 
<cfdump var="#session#" label="session"> 
+0

В дополнение к исключению я нахожу полезную информацию в области cgi. –

+0

Спасибо, Dan, я добавил в пример материала, который я нашел полезным для сброса. –

 Смежные вопросы

  • Нет связанных вопросов^_^